为了在Windows XP下部署使用VS2013编译器构建的C ++应用程序," v120_xp"必须设置平台工具集:这使得从XP到8.1的部署成为可能。接下来的问题是:为什么这个平台工具集不是唯一的默认工具? " v120"平台工具集适用于从Windows Vista开始。有任何性能缺陷吗?我已经测试了在Windows 8下为平台工具集构建的应用程序,但我发现性能没有差异(显然......)。
答案 0 :(得分:7)
使用XP专用工具集有很多事情你无法做到 - 它使用了旧的头文件和库,所以用它构建的应用程序就不能调用很多较新的API并使用一些花哨的新工具。一个值得注意的例子是DirectX - 引用this MS page:
构建支持旧版Windows XP平台的应用程序时, 您正在使用类似于那些的平台标头和库集 在Windows 7.1 SDK而不是Windows 8.x SDK中附带 集成的DirectX SDK内容(请参阅DirectX SDK在哪里?)。 许多“DirectX”标头和库都包含在这些中 Windows XP兼容平台标头(请参阅某些特定的DirectX SDK) 年龄),如Direct3D 9,DirectSound和DirectInput。你会, 但是,需要继续使用旧版DirectX SDK for Windows XP 兼容版本的D3DCompile API(#43),旧版D3DX9, XAUDIO2,XINPUT和PIX for Windows工具(Visual Studio 2012 Graphics Debugger不支持Direct3D 9应用程序。)
Windows SDK 7.1A作为VS 2012 Update 1的一部分安装以供使用 “v110_xp”平台工具集,包含标题,库, 以及最初在Windows SDK中提供的工具的子集 7.1。作为7.1版工具集的一部分,有较旧的Direct3D 10和Direct3D 11标题,与Windows 8.x相比已过时 SDK版本使用标准的“v110”平台工具集,尤其如此 在Windows 7和Windows 7上由Windows 8.0 SDK安装的SDK调试层 Windows 8.因此不建议使用平台工具集“v110_xp” 用于开发DirectX 11应用程序,但技术上可以完成 谨慎一点。 Windows SDK 7.1A不包含dxguid.lib 必须使用在本地定义项目中所需的GUID 在您的.cpp文件中定义INITGUID,或使用旧版DirectX SDK版本。