我正在学习DirectX 12,我在github上找到了这些教程。我下载了所有内容,并尝试运行HelloWindow项目。我在Debug->选项->链接器->输入不幸的是,它给了我一堆来自d3dx12.h的错误。对于其中的大多数错误,Intellisense说即使我已经包含了d3d12.h。例如,d3d12_RESOURCE_DESC1是未定义的,他的所有属性也是如此。我错过了什么吗?如果是,请帮助我。
您正在使用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标头:一个新选项是从GitHub获取包括D3DX12.H在内的最新标头集。链接库仍然需要一个Windows 10 SDK。
有关为什么D3DX12.H不是Windows 10 SDK的一部分的详细信息,请参阅此博客文章。
主/主分支中DirectX Graphics samples上的示例假定您使用的是最新的Windows 10 SDK(19041(。
由于您是DirectX 12的新手,您可能需要查看DX12的DirectX工具包,以更温和地介绍最新版本的API。