16

我正在尝试学习 DirectX 编程。但我遇到了一个障碍。

我似乎缺少这个文件:d3dcompiler_43.dll

我已经安装(按此顺序):

  1. 视觉工作室 2012
  2. 视窗 8
  3. 视窗电话 8 SDK
  4. 视窗 8 SDK

我想我需要一个 DirectX SDK,但这个链接说我不需要:

从 Windows 8 开始,DirectX SDK 包含在 Windows SDK 中。

我应该只安装 DirectX Distributable 吗?我担心这会给我dll,但我也会错过其他东西......

这是我得到的确切错误:

无法加载 DLL 'd3dcompiler_43.dll':找不到指定的模块。(来自 HRESULT 的异常:0x8007007E)

更新: 我跑了dxdiag,它说我安装了 DirectX 11……不知道为什么我不能让它工作。

4

4 回答 4

15

我在这里找到了答案:http: //msdn.microsoft.com/en-us/library/windows/desktop/ee663275.aspx

它说:

任何使用运行时着色器编译的项目都必须将 D3DCOMPILER_46.DLL 复制到项目的本地可执行路径。此 DLL 位于 %ProgramFiles(x86)%\Windows Kits\8.0\Redist\D3D\arch 下 Windows SDK 安装的此子目录中,其中 arch 为 x86 和 x64。

于 2012-11-24T22:26:49.793 回答
5

有关 D3DCompile 以及如何分发它的各种版本的详细信息,请参阅此博客文章...

简而言之:

  • #43 和之前的版本由旧版 DirectX 最终用户运行时 Redist(又名 DirectSetup)部署。
  • #46 由 VS 2012 / Windows 8.0 SDK 安装,并与您的 Win32 桌面应用程序“并行”部署
  • #47 由 VS 2013 / Windows 8.1 SDK 安装,可以与您的 Win32 桌面应用程序“并行”部署,但它也包含在 Windows 8.1 操作系统中。
于 2014-06-26T08:07:46.200 回答
3

如果您安装了 Chrome,那么这里值得屠夫:

C:\Users\<USER>\AppData\Local\Google\Chrome\Application\26.0.1410.64
于 2013-05-13T16:21:41.447 回答
3

您需要安装最新的 DirectX http://www.microsoft.com/en-us/download/confirmation.aspx?id=35

于 2014-05-05T05:25:08.957 回答