我使用 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/