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

Building c++ project for Win XP in MSVC 2012

本文关键字:构建 c++ 项目 XP Win MSVC 2012 中为      更新时间:2023-10-16

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

上级:

在谈到了对这个问题的评论中的建议之后,我更新了我的问题。

什么使用我的应用程序:

  • Urlmon.h/urlmon.lib
  • boost::p rogram_options
  • C++11 的正则表达式

我已经尝试过:

  • 构建测试应用程序,如"Hello, World!它适用于目标Win XP
  • 将 MSVC 2012 更新 3 和更新 3 修订版安装到目标计算机
  • 使用静态链接生成应用 (/MT(

依赖关系查看器显示 3 条消息:

  • 缺少WER.dll
  • 缺少 IESHIMS.dll
  • 未解析的 C 函数"WNetRestoreConnectionA">

据我所知,依赖项walker中列出的任何内容都不会影响我的应用程序,但它仍然无法加载并显示错误"不是有效的win32应用程序"。

有人知道为什么吗>

v110_xp工具集自动指定子系统的 MRV("5.1"(WindowsXP((,但不指定子系统

这就是问题所在。我在项目设置中将子系统设置为"/SUBSYSTEM:CONSOLE",并且目标Win XP消失了。感谢大家的评论。

据我所知,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