这是一个非常简单的问题,但我已经搜索了一段时间并且没有运气。我应该将它添加到我相信的链接器中吗?这是项目属性>链接器>输入>附加依赖项。我只是对到底该怎么做感到困惑。谢谢你。
问问题
200 次
1 回答
0
最简单的解决方案是将Microsoft.DXSDK.D3DX NuGet 包添加到您的项目中,并且根本不使用旧版 DirectX SDK。这会将标头d3dx9*.h
、d3dx10*.h
和d3dx11*.h
放入您的包含路径中。它还向您的链接设置添加d3dx9.lib
、d3dx10.lib
和d3dx11.lib
,并“并排”提供所需的运行时 DLL。请参阅此博客文章。
否则,集成旧版 DirectX SDK 需要在 VC++ 目录中进行一些特殊的 include/lib 路径排序,并且您将面临许多其他怪癖。有关详细信息,请参阅Microsoft Docs。
当然,真正的问题是“为什么首先使用旧版 Direct3D 9 而不是 Direct3D 11?”。对于 Direct3D 11 或 Direct3D 12,您应该完全避免使用旧版 DirectX SDK 和 D3DX9/D3DX10/D3DX11。请参阅没有 D3DX 的生活。
于 2021-03-08T05:31:25.483 回答