构建Windows XP的应用程序

时间:2014-04-30 09:29:58

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

我需要构建可以在Windows XP上运行的应用程序。出于这个原因,我发现选项Platform Toolset可能设置为Visual Studio 2012 - Windows XP (v110_xp)和定义#define _WIN_VER 0x0501Platform Toolset做了什么,如果我定义_WIN_VER 0x0501,我可能不需要它?

2 个答案:

答案 0 :(得分:1)

使用“v110”平台工具集使用VS 2012构建时,您正在使用VS 8.0编译器和C运行时构建与Windows 8.0 SDK。这必须以Windows Vista或更高版本为目标,因为Windows 8.0 SDK不支持为Windows XP或Windows Server 2003构建应用程序。默认情况下,它以Windows 8或更高版本为目标,但您可以为Windows预设处理器符号_WIN32_WINNT设置为0x0600 Vista或更高版本,或Windows 7或更高版本的0x0601。

使用“v110_xp”平台工具集使用VS 2012构建时,您正在使用VS 2012编译器和C运行时构建与Windows 7.1A SDK - Windows SDK的最新版本,以支持目标Windows XP SP3 / Windows Server 2003 SP2。

请务必阅读此Visual C++ blog post和此DirectX SDK blog post,了解有关使用Windows XP平台工具集的重要信息。

注意:在VS 20123中,“v120”平台工具集使用VS 2013编译器,C运行时和Windows 8.1 SDK构建。它默认以Windows 8.1为目标,但您可以将Windows Vista或更高版本的预处理器符号_WIN32_WINNT设置为0x0600,Windows 7或更高版本设置为0x0601,Windows 8或更高版本则设置为0x0602。 “v120_xp”平台工具集使用VS 2013编译器,C运行时和Windows 7.1A SDK构建。

答案 1 :(得分:0)

它只是工具集。也许您只安装了visual studio 2012,如果是这样,您可以看到Visual Studio 2012 (v110)Visual Studio 2012 - Windows XP (v110_xp)

在我的情况下,我使用了几个版本的visual studio,因此我可以看到Visual Studio 2008 (v90)Visual Studio 2010 (v100)等。如果我选​​择Visual Studio 2008 (v90),程序将使用vs2008编译,甚至如果我正在研究vs2012。

首先,VS2012不支持windows xp,因此它的工具集也不支持windows xp。但在许多开发人员要求MS支持winxp之后,MS为winxp添加了一个工具集v110_xp。因此,如果要为windows xp构建应用程序,则应使用v110_xp工具集。


也许您不需要设置_WIN_VER,因为vs2012至少已经在Windows Vista上定义了它。