为了在 Windows XP 下部署使用 VS2013 编译器构建的 C++ 应用程序,必须设置“v120_xp”平台工具集:这使得从 XP 到 8.1 的部署成为可能。那么接下来的问题是:为什么这个平台工具集不是唯一的和默认的?“v120”平台工具集适用于从 Windows Vista 开始。是否有任何性能缺陷?我已经在 Windows 8 下测试了针对这两个平台工具集构建的应用程序,但我发现性能没有差异(显然......)。
1 回答
有很多事情是你不能用 XP 专用工具集做的——它使用旧的头文件和库,所以用它构建的应用程序不能调用很多更新的 API 并使用一些新奇的工具. 一个值得注意的例子是 DirectX - 引用这个 MS 页面:
在构建支持旧版 Windows XP 平台的应用程序时,您使用的平台标头和库集类似于 Windows 7.1 SDK 中提供的那些,而不是带有集成 DirectX SDK 内容的 Windows 8.x 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 图形调试器不支持Direct3D 9 应用程序)。
Windows SDK 7.1A 作为 VS 2012 Update 1 的一部分安装,用于与“v110_xp”平台工具集一起使用,该工具集包含头文件、库和最初在 Windows SDK 7.1 中提供的工具子集。作为此 7.1 时代工具集的一部分,有较旧的 Direct3D 10 和 Direct3D 11 标头与使用标准“v110”平台工具集的 Windows 8.x SDK 版本相比已经过时,尤其是 Windows 8.0 SDK 在 Windows 上安装的 SDK 调试层7 和 Windows 8。因此,不建议将平台工具集“v110_xp”用于开发 DirectX 11 应用程序,但在技术上可以谨慎使用。Windows SDK 7.1A 不包含 dxguid.lib,因此必须在您的项目中本地定义所需的 GUID,方法是在您的 .