DirectX SDK 在哪里?

从 Windows 8 开始,DirectX SDK 作为 Windows SDK 的一部分包含在内。

最初,我们在 Windows 的基础上创建了 DirectX SDK 作为游戏开发的高性能平台。 随着 DirectX 技术的成熟,它们与更广泛的应用程序相关。 目前,计算机中 Direct3D 硬件的可用性甚至是传统桌面应用程序的使用图形硬件加速。 与 Windows 并行集成了 DirectX 技术。 DirectX 现在是 Windows 的基本部分。

由于 Windows SDK 是 Windows 的主要开发人员 SDK,因此它现在包含 DirectX。 你现在可以使用 Windows SDK 为 Windows 构建出色的游戏。 若要下载 Windows 8. x sdk 或 Windows 10 sdk,请参阅Windows SDK 和模拟器存档

以下技术和工具(以前称为 DirectX SDK 的一部分)现在是 Windows SDK 的一部分。

技术或工具 说明
Windows图形组件
Direct3D和其他 Windows 图形 api (如Direct2D)的标头和库在 Windows SDK 中可用。
[!Note]
不推荐使用的 D3DX9/D3DX10/D3DX11 实用工具库通过NuGet提供,但还有许多开源备选方案。 Windows SDK 中提供了 D3DCSX DirectCompute 实用工具库和可再发行 DLL。 GitHub上提供了 D3DX12。

HLSL 编译器 (FXC.EXE)
HLSL编译器是 Windows SDK 的 bin 文件夹下相应的体系结构子目录中的工具。
[!Note]
Windows SDK 中提供了 D3DCompiler API 和可再发行的 DLL。


对于 DirectX 12 开发,请使用 Windows SDK 中的 DXCompiler,并将其托管在GitHub上。
Windows 的 PIX
Windows 工具的 PIX 的替换现在是 Microsoft Visual Studio 中的一项功能,称为 Visual Studio 图形调试器。 此功能极大地提高了可用性、对 Windows 8 和 Direct3D 11.1 的支持,以及与传统 Microsoft Visual Studio 功能(如用于HLSL调试的调用堆栈和调试窗口)的集成。 有关此新功能的详细信息,请参阅 调试 DirectX 图形

对于 DirectX 12 开发,请参阅Windows 上的最新一代 PIX
用于 Windows 的XAudio2
XAudio2 API 现在是 Windows 8 x 中的系统组件和 Windows 10。 Windows SDK 中提供了 XAudio2 的标头和库。 有关 Windows 7 支持,请参阅XAudio2Redist
用于 Windows 的XInput
XInput 1.4 API 现在是 Windows 8 x 中的系统组件和 Windows 10。 Windows SDK 中提供了 XInput 的标头和库。
[!Note]
旧的 XInput 9.1.0 也作为 Windows 7 或更高版本的一部分提供。

XNAMATH
现已为 DirectXMath更新了最新版本的 XNAMATH,该版本已更新为新指令集以及 ARM/ARM64。 Windows SDK 和GitHub上都提供了 DirectXMath 的标头。
DirectX 控制面板和 DirectX 功能查看器
directx 控制面板和 directx 功能查看器实用工具包含在 Windows SDK 的 bin 文件夹下的相应体系结构子目录中。 GitHub上也提供了 DirectX 功能查看器。
事务
Xbox 音频跨平台工具 (事务) 不再支持在 Windows 上使用。
游戏资源管理器 和 GDFMAKER
游戏资源管理器API 向用户提供 Windows 的游戏。 游戏资源管理器 API 仅在 Windows Vista 和 Windows 7 上受支持。 使用 "游戏定义文件生成器" 工具 (GDFMAKER.EXE) 声明 Windows 应用商店应用的游戏分级。
游戏定义文件生成器工具 (GDFMaker.exe) 包含在 Windows SDK 中 bin 文件夹下的 x86 子目录中,同时支持 Windows 应用商店应用和 Win32 桌面应用程序。

示例
可以在directx 示例存储库中找到突出显示 Windows 的 directx 12 技术的示例应用程序。 旧版本的 Direct3D 的大多数示例还可联机使用。 有关这些示例的详细信息,请参阅 DIRECTX SDK 示例目录
托管 DirectX 1。1
.NET DirectX 程序集已弃用,不建议用于新应用程序。 有多种方法可供选择。 请参阅 DirectX 和 .net

如果需要,可以从 Microsoft 下载中心 下载旧的 DirectX SDK,但不建议使用新的项目。

备注

如果已安装特定版本的 Visual C++ 2010 可再发行组件包,则无法安装 DirectX SDK。 有关和解决此问题的解决方案的详细信息,请参阅在 2010 年6月) (安装 DIRECTX SDK 时出现 "S1023" 错误

结合使用 DirectX SDK 项目与 Visual Studio

6月2010版的 DirectX SDK 中的示例支持高级 Visual Studio sku (Microsoft Visual Studio Professional 2012、Microsoft Visual Studio Ultimate 2012、Microsoft Visual Studio Professional 2013,或 Microsoft Visual Studio Ultimate 7 和) 和更高版本上 Windows 2013 Windows 8。 由于 DirectX 标头和库转换到 Windows SDK,因此需要对项目设置的更改,以便正确生成这些示例,同时与 Windows 8 SDK 和更高版本与高级 Visual Studio sku 一起打包。

这些步骤也适用于依赖于 DirectX SDK 的自己的项目。

  1. 确保在开发计算机上安装了2010年6月版的 DirectX SDK。 如果在运行 Windows 8 和更高版本的计算机上安装,则系统将会提示并要求你启用 .net 3.5 作为 DirectX SDK 的必备组件安装。

    备注

    如果已安装特定版本的 Visual C++ 2010 可再发行组件包,则无法安装 DirectX SDK。 有关和解决此问题的解决方案的详细信息,请参阅在 2010 年6月) (安装 DIRECTX SDK 时出现 "S1023" 错误

  2. 请确保使用的是高级 Visual Studio sku 之一。 Microsoft Visual Studio Express 2012 对于 Windows 8 或 Microsoft Visual Studio Express 2013,Windows 不会生成 Windows 8 和更高版本的桌面应用程序,如 DirectX SDK 示例。 若要安装一个高级 Visual Studio sku,请访问: Visual Studio 下载并按照说明进行操作。

  3. 使用 DirectX SDK 示例浏览器安装所需示例的项目文件。 打开示例的 Microsoft Visual Studio 2010 兼容的解决方案文件 (带有 _ 2010) 的后缀。

  4. 如果要在仅安装了 Microsoft Visual Studio 2012 或 Microsoft Visual Studio 2013 的系统上打开该示例,则会看到以下消息: "此解决方案包含使用早期版本 VC++ 编译器和库的一个或多个项目。 可以更新每个项目以使用 VC++ 编译器和库 (v110) "。 在打开项目之前,从此对话框中选择 更新 选项进行更新。

    否则,可以通过右键单击解决方案并选择 "更新" VC++ 项目 来更新到 Visual Studio 2012 或 Visual Studio 2013 c + + 11 编译器和库。

  5. 在 Windows 8 和更高版本中,不会将 D3DX 视为使用 Direct3D 的规范 API,因此不会将其包含在相应的 Windows SDK 中。 调查使用 Direct3D API 的替代解决方案。 对于旧项目(如 Windows 7 (及更早版本) directx sdk 示例),需要执行以下步骤,使用 directx sdk 通过 D3DX 生成应用程序:

    1. 按如下所示修改项目的 VC++ 目录,以使用正确的 SDK 标头和库的顺序。

      i. 打开项目的 "**属性**",然后选择 " **VC++ 目录**" 页。 ii. 选择 " **所有配置" 和 "所有平台**"。 iii. 如下所示设置这些目录:
      • 可执行目录: (在右侧下拉)
      • 包含目录: $ (IncludePath) ; $ (DXSDK _ DIR) 包括
      • 包括库目录: $ (LibraryPath) ; $ (DXSDK _ DIR) Lib \ x86

      iv. 单击“应用”。
      v. 选择 X64 平台
      vi. 按如下所示设置 库目录

      • 库目录: $ (LibraryPath) ; $ (DXSDK _ DIR) .lib \ x64
    2. 无论在项目中包括 "d3dx9"、"d3dx10" 或 "d3dx11",都一定要显式包括 "d3d9"、"d3d10" 和 "dxgi",或者首先显式包括 "d3d11" 和 "dxgi .h",以确保选择较新的版本。) 如果需要,可以禁用 警告 C4005 ;但是,此警告表明你正在使用这些标头的较旧版本。

    3. 在项目中删除对 DXGIType 的所有引用。 Windows SDK 中不存在此标头,并且 DirectX SDK 版本与新的 winerror.h 冲突。

    4. 所有 D3DX Dll 都安装在您的开发计算机上。 如果将所需的 D3DX 依赖项移动到另一台计算机,请确保将其与任何示例或应用程序一起重新分发。

    5. 请注意,D3DX11 的当前使用的替代技术包括 DirectXTexDirectXTKDirectXMeshUVAtlas。 D3DXMath 替换为 DirectXMath

  6. 通过观察以下条件,确保使用新版本的 HLSL 着色器编译器:

    1. 根据步骤5更改可执行文件目录将导致项目生成使用 Windows SDK 安装中的 fxc.exe。 请注意,HLSL 文件现在 Visual Studio 正式识别。 可以将它们作为项目文件添加并通过项目系统设置编译器选项。

    2. 通过旧的 D3DX DLL 调用运行时编译将使用错误的较早版本的 HLSL 编译器。 将代码中对 D3DXCompile * 、D3DX10Compile 和 D3DX11Compile api 的所有引用替换为 * * D3DCOMPILER _46.DLL 或 D3DCOMPILER47.DLL 中的 D3DCompile 函数 _ 。

    3. 使用运行时着色器编译的任何项目都必须将 _xx.DLL D3DCOMPILER 复制到项目的本地可执行路径。 此 DLL 在 Windows SDK 安装的此子目录下提供,该目录位于 % ProgramFiles (x86) % \ Windows 包 \ 8.0 \ ProgramFiles \ D3D \ % (x86) % \ Windows 工具包 \ 8.1 \ \ D3D \ ,其中 x86x64

      Windows SDK 的 D3DCOMPILER _46.DLL 或 D3DCOMPILER _47.DLL 不是系统组件,不应将其复制到 Windows 系统目录。 你可以使用应用程序作为并行 DLL 将此 DLL 重新分发给其他计算机。

  7. 使用 XInput API 并旨在在 Windows Windows 7 个或更早版本上运行的任何项目都需要使用旧版本 (9.1.0) ,或者需要从 DirectX SDK 中显式包含此组件的标头和库。 XInput 标头和 XINPUT。包含在 Windows SDK 中的 LIB 仅适用于 Windows 8 和更高版本中附带 (1.4) 版本。 同一标头可以与 XINPUT9 _ 1 _ 0 .lib 一起使用,以使用旧版本 Windows 随附的旧版本。 旧版本的 XInput 未检测到完全功能或支持控制器集成音频,因此,如果需要支持这些功能,则必须使用 DirectX SDK 版本 (1.3) 。

    若要使用功能齐全的下层 XInput API,应 #include 直接从 DIRECTX SDK 中下载特定的 XInput 标头:

    #include <%DXSDK_DIR%Include\xinput.h>

    ...对于其他依赖项,请在链接器选项中直接链接到 DirectX SDK XInput 库:

    % DXSDK _ 目录% 包含 \ \ xinput

    _开发计算机上的 DirectX SDK 安装会将 XINPUT13.DLL 二进制文件安装到 Windows 系统目录。 需要使用 directx SDK 中的 DirectX 安装程序安装,将此二进制文件与应用程序一起重新发布。

  8. 使用 XAudio2 API 并旨在在 Windows Windows 7 或更早版本上运行的任何项目都需要使用较旧版本 (9.1.0) 或从 DirectX SDK 中显式包含此组件的标头和库。 Windows SDK 中附带的 XAudio2 标头和库仅针对 Windows 8 中包含的 2.8 (版本) 。

    例如,对于 XAudio2,应 #include 直接从 DIRECTX SDK 获取特定 XAudio2 标头:

    #include <%DXSDK_DIR%Include\xaudio2.h>

    ...对于其他依赖项,请在链接器选项中直接链接到 DirectX SDK XAudio2 库:

    % DXSDK _ 目录% 包含 \ \ xaudio2

    _开发计算机上的 DirectX SDK 安装会将 XAUDIO27.DLL 二进制文件安装到 Windows 系统目录。 需要使用 directx SDK 中的 DirectX 安装程序安装,将这些库与应用程序一起重新发布。

  9. 如果已将 directx sdk 与 Visual Studio 的过去版本一起使用,则 Visual Studio 2010 升级可能会将 directx sdk 路径迁移到默认项目设置中。 建议你删除这些设置以防止将来出现生成错误。 在 % USERPROFILE% \ AppData \ Local \ microsoft \ MSBuild \ 4.0 目录中,修改 " " 和 " DXSDK" 文件,以删除对目录路径的所有引用 _ 。 或者,您可以删除 包含路径条目(如和)的整个节点 , 以恢复到标准默认值。 如果看不到 _ 这些文件中对 DXSDK 目录的引用,则无需进行任何更改。

  10. 如果生成的应用支持 Windows Vista Service Pack 2 (SP2) ,以及 Windows 7 和 Windows 8 和更高版本,请将名为 _ WIN32 _ WINNT 的预处理器定义设置为0x600。 如果它仅支持 Windows 7 和 Windows 8 及更高版本,则将其设置为0x601。

    例如:

    1. 打开项目的 "属性",然后选择 C/c + + > 预处理器
    2. 选择 " 所有配置 " 和 " 所有平台"。
    3. 请参阅 预处理器定义 部分并设置 _ WIN32 _ WINNT = 0x600。
    4. 单击“应用”。

Windows 游戏和 DirectX SDK

DirectX SDK (2021 版) 在何处?

特定期限的 DirectX Sdk

无 D3DX 的生活