如何使用Visual Studio 2012编译Win XP?

时间:2012-10-29 22:41:31

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

好的,所以我在Windows 7 x64中使用Visual Studio 2012进行编程和编译。我的应用程序在那里工作正常,但是当我尝试从Windows XP SP3虚拟机执行它时,我立即得到“xxxx.exe不是一个有效的win32应用程序”。

正在使用静态链接编译应用程序,即使用/ MT。我在targetver.exe中将_WIN32_WINNT设置为0x0501;配置管理器设置为Win32,链接器高级选项中的目标计算机设置为MACHINEX86。

我的targetver.h看起来像这样:

#include <winsdkver.h>

#define _WIN32_WINNT 0x0501
#define WINVER 0x0501
#define NTDDI_VERSION 0x0501

#include <SDKDDKVer.h>

我还尝试使用/ MD进行编译并安装.NET Framework,但这两者都无济于事。

我很笨,我真的可以使用一些帮助,因为我需要让它适用于Windows XP。提前谢谢。

3 个答案:

答案 0 :(得分:24)

重新发布评论,并注意此答案仅适用于VC ++ 2012

VC ++ 2012 RTM 支持WinXP - 今年晚些时候将在VS2012 Update 1中提供支持。

在此期间,您可以安装CTP of WinXP targeting with VC++ 2012,但您必须静态链接CRT才能进行部署。有关详细信息,请参阅this blog article


编辑:Visual Studio 2012 Update 1现已发布,并增加了在Windows XP上运行使用VC ++ 2012构建的应用程序的官方支持,以及动态链接CRT的功能。

答案 1 :(得分:7)

应该做两件事:

  • 配置属性&gt;常规页面,将Platform Toolset更改为:Visual Studio 2012 - Windows XP(v110_xp);

  • 链接器&gt;系统。将子系统更改为:控制台/ Windows。

此处详细说明:http://software.intel.com/en-us/articles/linking-applications-using-visual-studio-2012-to-run-on-windows-xp

答案 2 :(得分:0)

也许这个解决方案可能会迟到,或者它可能不是预期的解决方案,但是当您生成.exe时,32位的版本将位于Project文件夹bin \ x86 \ Release