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

Wip*_*per 23 c c++ windows-xp visual-c++ 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>
Run Code Online (Sandbox Code Playgroud)

我也尝试使用/ MD进行编译并安装.NET Framework,这也没有帮助.

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

ild*_*arn 24

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

VC++ 2012 RTM并没有支持WinXP的-在今年晚些时候的支持会在VS2012更新1.

与此同时,您可以使用VC++ 2012安装WinXP目标CTP,但是您必须静态链接CRT才能进行部署.有关更多信息,请参阅此博客文章.


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


Ali*_*ski 7

应该做两件事:

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

  • 链接器>系统.将子系统更改为:控制台/ Windows.

详细解释如下:http://software.intel.com/en-us/articles/linking-applications-using-visual-studio-2012-to-run-on-windows-xp