【问题标题】:Do we still need DirectX SDK to develop dx application in windows10?我们还需要 DirectX SDK 在 windows 10 中开发 dx 应用程序吗?
【发布时间】:2016-07-02 03:55:32
【问题描述】:

大部分课程都说我们需要directX SDK。然而,它们是在 2012 年初,即 Windows 7 的时代。 而且我看到一些directX 的头文件和lib 文件已经包含在windows 工具包(C:\Program Files (x86)\Windows Kits) 中。并且某些名称已更改(XNAmath.h 到 DirectXMath.h)。

所以我想知道SDK是否必要?
我可以只用 windows kit 写代码吗?

【问题讨论】:

标签: windows-10 direct3d


【解决方案1】:

作为将 DirectX SDK 合并到 Windows SDK 中的工作人员,我已经在这里和其他地方多次讨论过这个问题。

如果您拥有 Visual Studio 2012、2013 或 2015,则您已经拥有支持 DirectX 11 开发的 Windows 8.x SDK。使用 VS 2015,您可以选择安装开发 DirectX 所需的 Windows 10 SDK 12.

Visual Studio 2017 及更高版本随附支持 DirectX 11 和 DirectX 12 开发的 Windows 10 SDK。

旧版 DirectX SDK 的官方状态已在 Microsoft Docs 上解决。

此博客文章中介绍了更多详细信息:Where is the DirectX SDK (2021 Edition)?

随着向 Windows SDK 的过渡,一些东西被“遗忘”了,我已经将很多东西移到了各种 GitHub 项目中。有关最终结果的完整调查,请参阅以下博客文章:

目前,The Zombie DirectX SDK 中介绍的旧版 DirectX SDK 只有真正两种用途一种用途:

  • 您正在为 Windows XP 进行开发。这需要 Windows 7.1 SDK,因为 Windows 8.x SDK 和 Windows 10 SDK 不支持 Windows XP,而且这早于 DirectX 的合并。对于 VS 2012-2017,Windows XP 工具集包括 Windows 7.1A SDK(请参阅this post)。虽然基本的 Direct3D 9 标头已在 Windows SDK 中使用多年,但除了 D3DX 库中的旧版 DirectX SDK 之外,实际上没有任何 Direct3D 9 实用程序代码。

  • 您希望在需要 XAudio 2.7 的 Windows 7 上使用 XAudio,而 XAudio 2.7 仅在旧版 DirectX SDK 中可用。 XAudio 2.8 包含在 Windows 8 和 Windows 10 中,并且标头位于 Windows 8.x SDK 中。请参阅this post.。最好的选择是使用XAudio2Redist,它在 Windows 7 SP1、Windows 8.0 和 Windows 8.1 上提供 XAudio 2.9,同时在 Windows 10 上使用内置操作系统版本。这避免了对音频使用旧版 DirectX SDK 的任何要求。

Direct3D 11 的旧教程和书籍使用 D3DX11 实用程序库和 xnamath 或 D3DXmath。您可以将旧版 DirectX SDK 与 Windows 8.x SDK 或 Windows 10 SDK 一起使用,但由于包含/lib 路径顺序相反,这很棘手。有关详细信息,请参阅 Microsoft Docs。相反,我建议使用上面列出的 D3DX 替代品,例如 DirectX Tool Kit for DX11DirectXMath

更新:虽然在项目中停止使用旧版 D3DX9/D3DX10/D3DX11 仍然是一个好主意,但现在有一个简单的选项可以在现代版本的 Visual Studio 中使用它们,不需要旧版 DirectX SDK,不需要需要使用旧版 DirectX End-User Runtime 安装程序,不需要 需要摆弄 VC++ 目录项目设置。相反,您可以使用this NuGet package。详情请见this post

如果您使用的是 Direct3D 10.x,那么您应该升级到 Direct3D 11。API 非常相似,Direct3D 11 在更广泛的平台和硬件上受支持,您可以使用 D3DX11 的替代品来删除任何挥之不去的旧版 DirectX 依赖项。

从 Windows 8.x 到 Windows 10 w.r.t 的主要变化。 DirectX 开发是如何获得“开发者运行时”的。您无需从 SDK 获取它,而是启用称为“图形工具”的 Windows 可选功能。值得注意的是,Windows 8.0、Windows 8.1 或 Windows 10 上不支持 Direct3D 9 调试设备。请参阅Visual Studio 2015 and Graphics Tools for Windows 10

【讨论】:

【解决方案2】:

DirectX SDK 已合并到 Windows SDK 中,因此新的 DirectX12 项目不需要它,只有在维护旧的 DirectX 9/10/11 解决方案时才需要它:

Where is the DirectX SDK?

从 Windows 8 开始,DirectX SDK 包含在 Windows SDK。

我们最初创建 DirectX SDK 作为高性能平台 用于 Windows 之上的游戏开发。作为 DirectX 技术 成熟后,它们变得与更广泛的应用相关。 今天,计算机中 Direct3D 硬件的可用性甚至推动了 使用图形硬件的传统桌面应用程序 加速度。同时,DirectX 技术更加集成 与 Windows。 DirectX 现在是 Windows 的基本组成部分。

因为 Windows SDK 是 Windows 的主要开发者 SDK, DirectX 现在包含在其中。

【讨论】:

    【解决方案3】:

    您可以使用 Windows 10 SDK 开发使用 DirectX 9 或更高版本接口的新 DirectX 应用程序。但是,旧的 DirectX 9 和 10 时代 SDK 的某些部分现在被认为已过时,例如 D3DX 库,不包含在 Windows 10 SDK 中。这不会影响新应用程序,但如果您维护的是旧应用程序,则可能需要安装 DirectX SDK。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-17
      • 1970-01-01
      • 1970-01-01
      • 2019-08-26
      相关资源
      最近更新 更多