如何测试程序是否兼容 pi 16 位?

如何测试程序是否兼容 pi 16 位?

我正在为创建一个 GUIPDF格式用 Delphi 编写,但我想知道 soPDF 是否兼容 16 位,因为我需要在 MS-DOS 6.22 中运行它

另外,我可以用 DOSBox 做这个测试吗?

答案1

你可以在文本编辑器中打开 .exe 并查看前两个字母判断它是否与 16 位 DOS 兼容。根据 Wikipedia 文章,如果前两个字母是“MZ”或“NE”,则该程序与 16 位 DOS 兼容。然而,这有点误导。它可能只能在 16 位模式下运行,刚好足以告诉您“此程序无法在 DOS 模式下运行”。不幸的是,soPDF 就是这种情况(在记事本中打开它并亲自查看)。

安装的Win32s可能是让它运行的唯一希望。但是,我不确定您是否可以在 DOS 中运行 Win32s,或者是否必须从 Windows 3.11 运行它。我也不确定 soPDF 是否有任何其他先决条件,即使在 Win32s 下也无法运行。

您应该能够在 DOSBox 中测试该程序。虽然我认为它仅有的支持 16 位 DOS 应用程序,我找不到明确的答案,因此设置 VMware、VirtualBox 或 VirtualPC DOS 安装(正如大卫所建议的那样) 可能是测试它的最简单、最可靠的方法。

如果它不像在记事本中打开 .exe 那么简单,你可以使用DependencyWalker查看 soPDF 是否是 32 位或 64 位应用程序。

另外,如果我没记错的话,16 位应用程序在 WOW.EXE 或 WOW16.EXE 中运行(Windows 上的 Windows) 进程,如果您尝试在 32 位 WinNT/2k/XP 上运行 16 位应用程序,您应该能够在任务管理器的“进程”选项卡下看到该进程。

Windows 64 位版本不包含 16 位兼容层,因此我想如果所有其他方法都失败,并且它不能在 64 位 Windows 安装上运行,您可以假设您的程序已损坏或为 16 位。

Win32s 仍有可能帮到你,但我对此非常怀疑,因为 doPDF 是在 2008 年编写的,16 位应用程序主流消亡十多年后。祝你好运,玩得开心……哦——别忘了使用你的 8.3 文件名!

答案2

我没有对 soPDF 进行过多研究,但如果它是“Windows 时代”开发的工具,那么它几乎肯定不是 16 位程序。没有“16 位兼容性”……你可以在高位操作系统上运行低位程序,但反过来不行。

另外,您确定要在 DOS 中运行它吗?或者您指的是 cmd ?

答案3

最简单的方法是使用一些虚拟机软件(例如 VirtualBox 或 VMWare)并在其中运行 DOS。我确信 VirtualBox 可以接受软盘映像。

答案4

根据您提供的信息关联,soPDF 是用 Visual Studio 2008 构建的,因此它将是一个 32 位 Windows 应用程序,因为 Visual Studio 无法构建 16 位应用程序。如果您想要 16 位版本,则必须下载源代码并自行编译。如果您需要编译器,您可以使用打开 Watcom。这可能并不是一个简单的转换。

相关内容