3

我正在尝试学习 DirectX 12,我在 github 上找到了这些教程。我下载了所有内容并尝试运行 HelloWindow 项目。我在 Debug->Options->Linker->Input 中链接了 d3d12.lib。不幸的是,它给了我一堆来自 d3dx12.h 的错误。对于他们中的大多数人,Intellisense 说要包括 d3d12.h,即使我已经这样做了。例如,D3D12_RESOURCE_DESC1 是未定义的,他的所有属性也是如此。如果是,我是否错过了一些东西,请帮助我。

4

1 回答 1

6

您正在使用“最新”副本D3DX12.H,需要使用“最新”版本的 Windows 10 SDK (19041)。如果D3D12_RESOURCE_DESC1未定义,则您使用的是较旧的 Windows 10 SDK。

请注意,修复此不匹配有三种不同的选项:

  1. 安装最新的 Windows 10 SDK (19041)。对于 VS 2019,这是通过运行 Visual Studio 安装程序并选择新的 Windows 10 SDK 作为组件来完成的。对于 VS 2017,您需要运行独立安装程序。不支持 VS 2015 及更早版本。

  2. 使用支持旧 SDK 的 D3DX12.H 实用程序头版本。我维护了一个“最新”D3DX12.H 标头版本,其中包含一堆预处理器条件,以便它支持 Windows 10 SDK (14393) 或更高版本。这恰好是支持 VS 2015 的 Windows 10 SDK 的最后一个版本。从GitHub 获取它:directx-vs-templates

  3. 使用 GitHub DirectX-Headers:一个新选项是从GitHub获取最新的标头,包括 D3DX12.H 作为一组。您仍然需要用于链接库的 Windows 10 SDK。

有关D3DX12.H 为何不属于 Windows 10 SDK 的详细信息,请参阅此博客文章。

主/主分支中DirectX-Graphics-Samples上的示例假定您使用的是最新的 Windows 10 SDK (19041)。

由于您是 DirectX 12 的新手,因此您可能希望查看适用于 DX12 的 DirectX 工具包,作为对最新版本 API 的更温和的介绍。

于 2020-12-14T20:13:26.117 回答