我可以将16位.exe程序转换为64位.exe吗?

时间:2013-09-02 16:05:36

标签: windows 16-bit recompile

我意识到可能没有特殊的转换器程序或任何类似于此类任务的简单程序,但我必须找到一些方法让16位程序在64位Windows中运行。由于必须专用于它们的大量资源,仿真器将不是一个好的解决方案。

我对这个项目的想法是从16位程序中反编译所有代码,复制它,并将其重新编译为64位代码。使用Eclipse或其他编程环境是否可以实现这一点?

基本上,我想在不使用仿真器的情况下在64位Windows中运行16位程序。我意识到这是一个很高的要求,但可以想象吗?

2 个答案:

答案 0 :(得分:3)

问题不仅仅在于使用64位指令转换16位指令。程序使用ABI(应用程序二进制接口)与系统的其余部分进行通信。一个16位程序可能会使用大量的DOS调用,并且它也不可能直接尝试访问硬件。这无法自动翻译。即使存在这样的解决方案,我也非常怀疑结果会比在虚拟机中运行更有效(实际上效率非常高)。此外,为16位环境编写的程序通常不具有很高的可扩展性,并且完全无法处理超出原始目标平台容量的数据量。

所以我想说实际上只有两个现实的解决方案:在虚拟机中运行它。或者,如果没有削减它,从头开始编写一个新的应用程序来执行相同的操作。

答案 1 :(得分:2)

即使这是一个非常古老的问题,但我想我会为仍在寻找的人编写此解决方案:

使用类似 winevdm -这是一个非常轻量级的 Windows 程序-,您可以非常轻松地运行 16-bit Windows (Windows 1.x, 2.x, 3.0, 3.1, etc.) on 64-bit Windows 个应用程序!