0

我在WindowsServer2003 x64下创建了一个x86进程,ok,运行正常!

但我尝试在 VISTA x64 下创建一个 x86 进程。它失败,错误代码 = 216。(ERROR_EXE_MACHINE_TYPE_MISMATCH)。

2003x64 和 VISTAx64 有什么区别?

4

1 回答 1

0

我在客户的电脑上调试。

您正在使用的产品中有一个 16 位设置或 16 位程序或一些 16 位代码。

当您在 x64 机器上从 CreateProcess(或 CreateProcessEx)运行 16 位 EXE 时会发生这种情况。

建议是

  • 联系软件供应商,告诉他们将 Innosetup 升级到最新版本(例如,16 位 Innosetup)或 InstallShield 升级到最新版本(例如,16 位 InstallShield),并为您提供新的安装程序包。

  • 如果产品包含 DOS 或 MS-DOS 旧版 EXE 或 COM 文件,您需要向供应商询问基于 Win32 或 Win64 命令行的版本。

  • 在 VM 中运行 Windows Vista(32 位)、Windows 7(32 位)的副本。这些 16 位实用程序将正常运行。

于 2012-08-27T13:00:10.887 回答