如何编译 32 位程序并在 Windows 7 等 64 位操作系统上运行?

Posted

技术标签:

【中文标题】如何编译 32 位程序并在 Windows 7 等 64 位操作系统上运行?【英文标题】:How can I compile a 32bit program and run it on a 64 OS system such as Windows 7? 【发布时间】:2011-06-06 17:42:56 【问题描述】:

我有一个在 x86 系统(32 位)中在 Visual Studio 2005 中编译的程序,但是当我尝试在 x64 操作系统(64 位 Windwos 7、Windows 2003、Windows 2008)中运行它时,它不会执行,我只收到以下消息:

 "myapp.exe has stopped working
 Windows is checking for a solution to the problem... "

我在执行机器上安装了适用于 32 位和 64 位的 Microsoft Visual C++ 2005 Redistributable Package(vcredist_x86.exe 和 vcredist_x64.exe),但应用程序仍然无法运行。

我还在配置管理器窗口中将开发机器上的选项更改为从“任何 CPU”生成到“x86”平台,结果相同。

是否有任何其他配置选项、dll、lib 或包允许以 32 位编译 myapp 并以 64 位执行?

感谢您的建议。

尤金。

【问题讨论】:

制作这个社区维基怎么样?这可能是一个分散的问题(我还有 winXp) @BlackBear,不合适。 32 位应用程序应在 64 位 cpu/os 上运行。如果涉及一些过程,它可能是合适的,但在这种情况下,海报应用程序有问题。 【参考方案1】:

您无需重新编译程序即可在 64 位操作系统上运行,还有一些其他错误会导致它崩溃。

【讨论】:

以上是关于如何编译 32 位程序并在 Windows 7 等 64 位操作系统上运行?的主要内容,如果未能解决你的问题,请参考以下文章

在Windows系统中使用VC9VC11编译32位64位PHP及其扩展

在 64 位 Windows 上安装 32 位或 64 位应用程序有啥区别?

在 Windows 64 中编译 32 位应用程序时未解析的外部符号

如何使用 Visual C++ 2010 Express 从 32 位环境为 64 位 Windows 编译 Qt?

OmniORB 编译错误 Windows 7 64 位

如何在 64 位 RHEL 上编译 32 位应用程序?