繁体   English   中英

Visual Studio 2012编译为XP - 无效的win32 - v110_xp

[英]Visual Studio 2012 compile for XP - not valid win32 - v110_xp

我有Visual Studio 2012更新4和Windows SDK 7.1。

我选择“Visual Studio 2012 - Windows XP(v110_xp)”工具包,并将include目录更改为使用$(WindowsSdkDir_71A)。

在编译期间没有给出错误(例如它成功找到winres.h),但是当我尝试在Windows XP SP3上运行exe时,它仍然是错误:“test.exe不是有效的Win32应用程序。”

对于测试,它只是一个C ++ hello世界。

#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成功编译,但这并不理想。

需要更改的设置是Project Properties - > Configuration Properties - > Linker - > System - > SubSystem

这需要针对相应的项目类型设置为CONSOLE或WINDOWS,但默认情况下不为“空项目”设置,即使控制台与GUI设置在其他位置并且它似乎有效(例如WinMain是入口点,控制台)没有出现等)。 最低要求版本也需要是5.01,但是通过link.exe上的命令行帮助来判断,除非设置了子系统,否则我认为这不会做任何事情。

要检查的事项:

  • Visual Studio 2012是Update 1或更高版本
  • 已安装SDK 7.1并且存在7.1A
  • 使用“Visual Studio 2012 - Windows XP(v110_xp)”工具包
  • 预处理程序定义包含_USING_V110_SDK71_
  • VC ++目录包含$(WindowsSdkDir_71A)bin,$(WindowsSdkDir_71A)include和$(WindowsSdkDir_71A)lib
  • 链接器子系统是控制台或窗口,所需的最低版本为5.01

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM