VS2013“v120_xp"默认作为平台工具集 [英] VS2013 "v120_xp" as platform toolset by default

查看:20
本文介绍了VS2013“v120_xp"默认作为平台工具集的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

为了在 Windows XP 下部署使用 VS2013 编译器构建的 C++ 应用程序,必须设置v120_xp"平台工具集:这使得从 XP 到 8.1 的部署成为可能.那么接下来的问题是:为什么这个平台工具集不是唯一的和默认的?v120"平台工具集适合从 Windows Vista 开始.是否有任何性能缺陷?我已经在 Windows 8 下测试了针对两个平台工具集构建的应用程序,但我发现性能没有差异(显然......).

In order to deploy C++ application built with VS2013 compiler under Windows XP, the "v120_xp" platform toolset has to be set: this make it possible the deployment from XP to 8.1. So next come the question: why this platform toolset is not the only one and the default? The "v120" platform toolset is suitable starting from Windows Vista. Is there any performance drawback? I've tested an application built towards both the platform toolsets under Windows 8 but I've seen no difference in performance (apparently..).

推荐答案

XP 专用工具集有很多事情是你无法做到的 - 它利用旧的头文件和库,因此构建的应用程序它只是不能调用很多较新的 API 并使用一些新奇的工具.一个值得注意的例子是 DirectX - 引用 此 MS 页面:

There are quite a few things you just can't do with the XP-dedicated toolset - it makes use of old headers and libraries, and so apps built with it just can't call a lot of newer APIs and use some fancy newer tools. A notable example is DirectX - quoting 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.你会,但是,需要继续使用适用于 Windows XP 的旧版 DirectX SDKD3DCompile API (#43)、旧版 D3DX9 的兼容版本,XAUDIO2、XINPUT 和 PIX for Windows 工具(Visual Studio 2012图形调试器不支持 Direct3D 9 应用程序).

When building applications that support the legacy Windows XP platform, you are using a platform header and library set similar to those that shipped in the Windows 7.1 SDK rather than the Windows 8.x SDK with the integrated DirectX SDK content (see Where is the DirectX SDK?). Many of the "DirectX" headers and libraries are included with these Windows XP compatible platform headers (see DirectX SDKs of a certain age) such as Direct3D 9, DirectSound, and DirectInput. You will, however, need to continue to use the legacy DirectX SDK for Windows XP compatible versions of the D3DCompile API (#43), legacy D3DX9, XAUDIO2, XINPUT, and PIX for Windows tool (the Visual Studio 2012 Graphics Debugger does not support Direct3D 9 applications).

Windows SDK 7.1A 作为 VS 2012 Update 1 的一部分安装,用于v110_xp"平台工具集,其中包含头文件、库、以及最初在 Windows SDK 中提供的工具的子集7.1.作为此 7.1 时代工具集的一部分,有较旧的 Direct3D 10 和 Direct3D 11 标头,与 Windows 8.x 相比已过时使用标准v110"平台工具集的 SDK 版本,特别是Windows 7 上的 Windows 8.0 SDK 安装的 SDK 调试层和Windows 8.因此不推荐使用平台工具集v110_xp"用于开发 DirectX 11 应用程序,但技术上可以做到谨慎一些.Windows SDK 7.1A 不包含 dxguid.lib 所以必须使用本地定义项目中所需的 GUID在您的 .cpp 文件之一中定义 INITGUID,或使用旧版 DirectX SDK.

Windows SDK 7.1A is installed as part of VS 2012 Update 1 for use with the "v110_xp" Platform Toolset, which contains the headers, libraries, and a subset of the tools that originally shipped in the Windows SDK 7.1. There are older Direct3D 10 and Direct3D 11 headers as part of this 7.1 era toolset which are outdated compared to the Windows 8.x SDK versions using the standard "v110" Platform Toolset, particularly the SDK Debug Layers installed by the Windows 8.0 SDK on Windows 7 and Windows 8. The Platform Toolset "v110_xp" is therefore not recommended for developing DirectX 11 applications, but it can technically be done with some caution. Windows SDK 7.1A does not contain a dxguid.lib so must either locally define the required GUIDs in your project by using define INITGUID in one of your .cpp files, or use the legacy DirectX SDK version.

这篇关于VS2013“v120_xp"默认作为平台工具集的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆