用于.NET的轻量级x86仿真器/在托管环境中执行x86代码

时间:2009-09-11 14:42:06

标签: .net x86 native managed emulation

我们公司正在将其整个产品线从C ++代码库迁移到.NET Framework。我们有一个非常大的代码库,这个迁移在多年的过程中逐步完成。

我们希望享受纯托管代码的一些好处,例如Silverlight,但是有很多传统的C ++ / x86模块需要时间来移植到.NET。

我们可以将这些模块加载到运行在.NET Framework中的小内存沙箱中的轻量级x86模拟器中。这将允许我们在维护纯托管应用程序的同时调用遗留x86 DLL代码。

有谁知道这样的项目?

此致

2 个答案:

答案 0 :(得分:2)

我不知道一个允许这样做的项目。

话虽如此,我认为这无论如何都不是一个现实的期望。使用本机代码不仅仅是能够运行x86指令。

更大的问题是关于库代码的使用。这不可能移植到模拟器中,因为模拟器可能不仅需要实现x86指令,还可以模拟Windows API等。

如果本机代码只是纯数字代码,移植它可能比在模拟器下测试它更容易。如果它是使用库的复杂代码,我不认为这实际上是有效的,即使存在这样的模拟器。

我只关注真正纯粹管理所需的功能,并尝试将其迁移。 C ++ / CLI使这更简单(假设您的本机代码使用C ++),因为您始终可以尝试在启用/clr:pure的情况下编译一个文件,并且只需根据需要修复错误。

对于不需要100%托管的东西,C ++ / CLI中的互操作是一个很好的垫脚石,直到您可以移植代码库为止。

答案 1 :(得分:1)

更改Java而不是.net。然后你可以使用它:

http://jpc.sourceforge.net

运行现有代码

使用LLJVM或类似的东西从C ++编译为Java B代码。