从 D3DX 转换过来,找不到 D3DCompile

Changing over from D3DX, D3DCompile not found

到目前为止,我已经成功地将已弃用的 D3DX 库更改为新的库,但是对于 D3DX11CompileFromFile 函数,我应该使用新的 D3DCompileFromFile。 MSDN 说头文件是D3DCompiler.h,lib 文件是D3DCompiler.lib。 Intellisense 选择了两个,一个来自

C:\Program Files (x86)\Microsoft DirectX SDK(2010 年 6 月)\Lib\x64

另一个来自

C:\Program Files (x86)\Windows Kits.1\Lib\winv6.3\um\x64

如果有人知道为什么会这样,我将不胜感激。我也试过调换其中几个的顺序。谢谢

理想情况下,您完全删除 DirectX SDK(2010 年 6 月)路径,只使用 Windows 8.1 SDK 中的 D3DCompile header。

如果您必须使用旧版 DirectX SDK(2010 年 6 月),请将这些包含和库路径放在 Windows 8.1 SDK 之后。这主要是可行的,但是 down-level XAudio 2.7 存在一些复杂问题。有关所有详细信息,请参阅 The Zombie DirectX SDK

d3dcompiler.h 的旧版 DirectX SDK 副本没有为 Windows 8.x SDK 版本添加的 FromFile 风格。在 Windows 8.1 或 Windows 10 上,D3DCompiler_47.DLL 是 OS 的一部分,但如果您想在 Windows 7 上 运行,则需要使用您的应用程序部署 DLL,您只需从 $(WindowsSdkDir)redist\d3d\<arch>\D3DCompile*.DLL 中复制它即可。参见 HLSL, FXC, and D3DCompile