在MSVC 2012中为Win XP构建c ++项目

时间:2013-10-01 09:41:28

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

我有一个需要在Windows XP上使用的控制台应用程序。我也使用MSVC 2012作为IDE。问题,当我在Win XP(SP3)上运行它时,我收到错误消息,指出此应用程序不是有效的win32应用程序。

UPD:

在对这个问题的评论中关注建议之后,我已经更新了我的问题。

使用我的应用程序:

  • Urlmon.h / urlmon.lib
  • 升压:: program_options
  • c ++ 11的正则表达式

我已经尝试过:

  • 构建测试应用程序,如“Hello,World!”。它适用于目标Win XP
  • 为MSVC 2012安装更新3&更新3 redist。目标机器
  • 使用静态链接构建应用程序(/ MT)

Dependency walker显示3条消息:

  • 缺少WER.dll
  • 缺少IESHIMS.dll
  • 未解决的C函数“WNetRestoreConnectionA”

据我所知,依赖walker中列出的内容不应该影响我的应用程序,但仍然无法加载错误“不是有效的win32应用程序”。

有没有人知道为什么>

2 个答案:

答案 0 :(得分:1)

  

v110_xp工具集自动指定SUBSYSTEM的MRV(“5.1”(WindowsXP))但不指定SUBSYSTEM

这就是问题所在。我在项目设置中将SUBSYSTEM设置为“/ SUBSYSTEM:CONSOLE”。目标问题Win XP消失了。感谢大家的评论。

答案 1 :(得分:0)

据我所知,MSVC 2012工具集不支持Windows XP。但您可以在IDE 2012中使用MSVC 2010工具集。或者使用工具集v110_xp forom Visual Studio 2012 Update 1(我没有尝试过)。

此链接可能有所帮助

http://blogs.msdn.com/b/vcblog/archive/2012/10/08/windows-xp-targeting-with-c-in-visual-studio-2012.aspx?Redirected=true