d3dx12.h 标识符未定义

d3dx12.h identifier undefined

我正在学习 DirectX 12。我想使用 d3dx12.h 头文件但是有很多错误,其中大部分是“identifer 'something' undefined'。

所以我搜索了这个问题并得到了一些解决方案。 这是“检查 Windows SDK 版本”,我更新了 VS2019。但这对我来说不是一个好的解决方案。

所以我认为 DirectX 12 不支持 GTX 750ti。我也找到了。但是DX12支持GTX 750ti

我不知道为什么 'd3dx12.h' 会出错。

我使用: Windows 10, Visual studio 2019(更新到最新版本), GTX 750ti, d3dx12.h(最新版本,https://github.com/microsoft/DirectX-Headers/blob/main/include/directx/d3dx12.h

其中大部分是“标识符未定义”。 D3D12_BARRIER_SYNC、D3D12_BARRIER_ACCESS、D3D12_GLOBAL_BARRIER .... 和 D3D12_FEATURE_DATA_DISPLAYABLE、D3D12_FEATURE_DATA_D3D12_OPTIONS8、D3D12_FEATURE_DATA_D3D12_OPTIONS9、...、D3D12_FEATURE_DATA_D3D12_OPTIONS12、和 D3D12_WAVE_MMA_TIER_NOT_SUPPORTED、D3D12_TRI_STATE_UNKNOWN、D3D_SHADER_MODEL_6_7 等。这些是未定义的。而且还有更多。

Severity    Code    Description Project File    Line    Suppression State
Error (active)  E0020   identifier "D3D12_GLOBAL_BARRIER" is undefined  Engine  C:\Users\Beomseo Choi\source\repos\Game\Engine\d3dx12.h 4087    

DirectX-Headers GitHub 站点上 D3DX12.H 的 'latest' 版本假定您使用的是 Agility SDK 1.7 预览版,它添加了一些新类型,例如 D3D12_GLOBAL_BARRIER.

您应该使用 release or perhaps this copy 中的 D3DX12.H。