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