c++ - 使用 Visual Studio 11 编译的可执行文件有什么特别之处,导致无法在 Windows XP 上执行这些可执行文件?

标签 c++ visual-studio windows-xp compatibility visual-studio-2012

我使用 Visual Studio 11 Developer Preview 编译我的 C++ 源代码。我静态链接到运行时库。

生成的可执行文件无法在 Windows XP 上执行。当我尝试在 Windows XP 上执行它时,我收到错误消息“[Executable Path] 不是有效的 Win32 应用程序。”。

According to Microsoft Visual Studio 11 不支持 Windows XP。

生成的可执行文件无法在 Windows XP 上执行是怎么回事?可执行文件中有什么特别之处吗?

最佳答案

它们似乎在每个新版本的 VS(NT4,2000,XP)中都放弃了对旧系统的支持,即使您根本不使用 CRT,它们仍然会强制 PE 子系统版本使用高数字。您可以通过 changing the numbers back 解决此问题在构建后步骤中到 5.0。只需更改这些数字即可让 exe 在 XP 上启动,除非新 CRT 使用 XP 上不存在的 WinAPI 函数。

如果您想继续使用 VS11,另一种选择是使用多目标和较旧的编译器...

关于c++ - 使用 Visual Studio 11 编译的可执行文件有什么特别之处,导致无法在 Windows XP 上执行这些可执行文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7702463/

相关文章:

c++ - 为什么我的 Linux 编译的二进制文件在 Windows 上运行时不起作用?

控制台应用程序菜单在 C 中不起作用

.net - 无法在 Windows XP 下运行 Light Switch 2012 程序

windows-xp - gnuplot png 导出

c++ - 如何从 C++ 文件中读取印地文文本?

c++ - 线程在给定时隙内执行的指令数是否最少?

.net - 无法应用发布属性?

visual-studio - VS PostBuild 事件 - 复制文件(如果存在)

windows - 我如何在 winXP 上设置 socket.io?

c# - 快速的 C++ 程序,C# GUI,可能吗?