我意识到对于这样的任务可能没有特殊的转换器程序或任何类似的简单程序,但我必须找到某种方法让 16 位程序在 64 位 Windows 中运行。由于必须专用于它们的大量资源,模拟器将不是一个好的解决方案。
我对这个项目的想法是反编译 16 位程序的所有代码,复制它,然后重新编译成 64 位代码。这完全有可能使用 Eclipse 或其他编程环境吗?
基本上,我想让一个 16 位程序在没有模拟器的情况下在 64 位 Windows 中运行。我意识到这是一项艰巨的任务,但这是可以想象的吗?
最佳答案
问题不仅仅是将 16 位指令转换为 64 位指令。程序还使用 ABI(应用程序二进制接口(interface))与系统的其余部分进行通信。一个 16 位程序可能会使用大量 DOS 调用,而且它也很可能会尝试直接访问硬件。这无法自动翻译。即使存在这样的解决方案,我也非常怀疑结果会比在虚拟机中运行更有效(实际上非常有效)。此外,为 16 位环境编写的程序通常可扩展性不强,完全无法处理超出原始目标平台能力的数据量。
所以我想说实际上只有两个现实的解决方案:在虚拟机中运行它。或者,如果这不能解决问题,请从头开始编写一个执行相同操作的新应用程序。
关于windows - 我可以将 16 位 .exe 程序转换为 64 位 .exe 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18577121/