我在WindowsServer2003 x64下创建了一个x86进程,ok,运行正常!
但我尝试在 VISTA x64 下创建一个 x86 进程。它失败,错误代码 = 216。(ERROR_EXE_MACHINE_TYPE_MISMATCH)。
2003x64 和 VISTAx64 有什么区别?
我在WindowsServer2003 x64下创建了一个x86进程,ok,运行正常!
但我尝试在 VISTA x64 下创建一个 x86 进程。它失败,错误代码 = 216。(ERROR_EXE_MACHINE_TYPE_MISMATCH)。
2003x64 和 VISTAx64 有什么区别?
我在客户的电脑上调试。
您正在使用的产品中有一个 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 位实用程序将正常运行。