2009-10-24 121 views

回答

4

如果Windows EXE实际上是C#(或其他.net)字节码,那么您可以使用mono来运行它。您可以使用“文件”命令

$ file hello.exe 
hello.exe: PE32 executable for MS Windows (console) Intel 80386 32-bit Mono/.Net assembly 

除此之外检查,它要么葡萄酒或重写应用程序,像别人在这里建议。

+1

但是为什么不能读取所有汇编命令(例如写入控制台的命令)并将它们放入精灵(也许是转换地址和其他东西)? – 2014-11-04 15:47:49

0

不,没有。很多原因之一:它们使用的库和内核调用是不同的。

5

如果您有源代码,您可以重新编译它以使用不同的平台。但是,这并不总是像编译它一样简单。如果有任何依赖于平台的调用(例如Windows API),它们将不得不完全重写以适应新的平台。

在短期内,模拟器是您最好的选择。如果您无法访问源代码,那么我没有办法知道要这样做。

2

无法将为一个平台/体系结构编译的可执行文件“转换”为另一个平台/体系结构。 (即Windows到Linux,Windows到Mac OS X,Mac OS X到Linux等)

您可以选择使用WINE或虚拟机环境。如果你有一个简单的旧版Windows程序,WINE是非常棒的.Windows 2000和一些XP可以很好地工作,但是如果它复杂或者使用一些第三方库或者没有被移植过的微软版本,它将无法正常工作或者无法正常工作。

我发现VM环境效果最好。我建议使用VirtualBox这是一个非常好的,免费的,用于x86架构的跨平台可视化软件。

+0

xen也不错,但很难走。 – 2009-10-26 11:31:38