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