3

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

我们希望享受纯托管代码(例如 Silverlight)的一些好处,但是有许多遗留的 C++/x86 模块需要我们花时间才能移植到 .NET。

一种解决方案是让我们将这些模块加载到轻量级 x86 仿真器中,该仿真器在 .NET Framework 的小型内存沙箱中运行。这将允许我们调用遗留的 x86 DLL 代码,同时维护一个纯托管应用程序。

有人知道这样的项目吗?

真挚地,

4

2 回答 2

2

我不知道有什么项目可以做到这一点。

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

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

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

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

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

于 2009-09-11T14:50:08.883 回答
1

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

http://jpc.sourceforge.net

运行现有代码

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

于 2010-09-16T09:33:03.563 回答