.net - 用于 .NET 的轻量级 x86 模拟器/在托管环境中执行 x86 代码

标签 .net x86 native managed emulation

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

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

我们的一个解决方案是将这些模块加载到在 .NET Framework 中的小型内存沙箱中运行的轻量级 x86 模拟器中。这将使我们能够调用旧版 x86 DLL 代码,同时维护纯托管应用程序。

有人知道这样的项目吗?

真诚的,

最佳答案

我不知道有哪个项目可以实现这一点。

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

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

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

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

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

关于.net - 用于 .NET 的轻量级 x86 模拟器/在托管环境中执行 x86 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1411311/

相关文章:

c++ - count 参数是否应该直接在可变参数函数中的省略号 (...) 之前声明?

c++ - 使用窗口 native API 创建 GUI

android - 将 C/C++ 程序移植到 Android 中

程序集/gdb : add behavior

c++ - 指针正在以某种方式失效,这会导致访问冲突

c# - 如何在工作线程中从 UI 线程获取变量?

c# - 在一个解决方案中重定向多个项目

asp.net - 动态编译的文件在 .NET 中使用 csc.exe 吗?

c# - 使用 Crystal Reports for .net 时出错

assembly - 为什么这些实模式代码在虚拟机中可以运行,但在我的真机上却不能运行?