【发布时间】:2014-05-05 06:09:38
【问题描述】:
我有 Visual Studio 2012 更新 4 和 Windows SDK 7.1。
我选择“Visual Studio 2012 - Windows XP (v110_xp)”工具包,并将包含目录更改为使用 $(WindowsSdkDir_71A)。
编译时没有报错(如成功找到winres.h),但是当我尝试在Windows XP SP3上运行exe时,仍然报错:“test.exe不是有效的Win32应用程序。”
对于测试,它只是一个 C++ hello world。
#include <cstdio>
int main(void)
{
printf("Hello, World!\r\n");
return 0;
}
如何使用 Visual Studio 2012 为 XP 编译?
我应该检查什么才能使其正常工作?
如何在命令行上测试编译? 我目前正在用这个在命令行上进行测试,它仍然给出了无效的 win32 错误:
"C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\cl.exe" /EHsc /MT /I"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Include" /I"C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include" main.cpp /link /LIBPATH:"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib" /LIBPATH:"C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\lib"
更新: 如果我将这些说明用于命令行,它会起作用: http://blogs.msdn.com/b/vcblog/archive/2012/10/08/10357555.aspx
如果我把这些设置放到我的系统环境变量中,我也可以让msbuild和visual studio编译成功,但这并不理想。
【问题讨论】:
-
您的 XP 系统上有 MS VS Distribuable 吗?
-
这可能出错的方法很少,你可能只是复制了错误的EXE。项目 + 属性、链接器、系统、最低要求版本是重要的设置。 XP 必须是 5.01。
-
最低要求版本为 5.01。 XP 上没有可再发行组件,但它是静态链接的 (/MT),并且可以在 Visual Studio 2010 上运行。它也没有给出缺少的 dll 错误,而是给出了无效的 win32 应用程序错误。
标签: c++ winapi visual-studio-2012 windows-xp