我正在尝试学习 DirectX 12,我在 github 上找到了这些教程。我下载了所有内容并尝试运行 HelloWindow 项目。我在 Debug->Options->Linker->Input 中链接了 d3d12.lib。不幸的是,它给了我一堆来自 d3dx12.h 的错误。对于他们中的大多数人,Intellisense 说要包括 d3d12.h,即使我已经这样做了。例如,D3D12_RESOURCE_DESC1 是未定义的,他的所有属性也是如此。如果是,我是否错过了一些东西,请帮助我。
1 回答
您正在使用“最新”副本D3DX12.H
,需要使用“最新”版本的 Windows 10 SDK (19041)。如果D3D12_RESOURCE_DESC1
未定义,则您使用的是较旧的 Windows 10 SDK。
请注意,修复此不匹配有三种不同的选项:
安装最新的 Windows 10 SDK (19041)。对于 VS 2019,这是通过运行 Visual Studio 安装程序并选择新的 Windows 10 SDK 作为组件来完成的。对于 VS 2017,您需要运行独立安装程序。不支持 VS 2015 及更早版本。
使用支持旧 SDK 的 D3DX12.H 实用程序头版本。我维护了一个“最新”D3DX12.H 标头版本,其中包含一堆预处理器条件,以便它支持 Windows 10 SDK (14393) 或更高版本。这恰好是支持 VS 2015 的 Windows 10 SDK 的最后一个版本。从GitHub 获取它:directx-vs-templates。
使用 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 的更温和的介绍。