C++ Can';找不到用于DirectX编程的d3dcompiler_43.dll

C++ Can';找不到用于DirectX编程的d3dcompiler_43.dll,c++,windows-8,visual-studio-2012,directx,windows-runtime,C++,Windows 8,Visual Studio 2012,Directx,Windows Runtime,我正在努力学习DirectX编程。但我遇到了一个障碍 我似乎缺少此文件:d3dcompiler_43.dll 我已安装(按此顺序): Visual Studio 2012 视窗8 WindowsPhone8SDK Windows8SDK 我想我需要一个DirectX SDK,但上面说我不需要: 从Windows 8开始,DirectX SDK作为Windows SDK的一部分提供 我应该只安装DirectX可分发的吗?我担心这会给我的dll,但我会错过其他东西太 下面是我得到的确切错误: 无法加

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

我似乎缺少此文件:d3dcompiler_43.dll

我已安装(按此顺序):

  • Visual Studio 2012
  • 视窗8
  • WindowsPhone8SDK
  • Windows8SDK
  • 我想我需要一个DirectX SDK,但上面说我不需要:

    从Windows 8开始,DirectX SDK作为Windows SDK的一部分提供

    我应该只安装DirectX可分发的吗?我担心这会给我的dll,但我会错过其他东西太

    下面是我得到的确切错误:

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

    更新:我运行了
    dxdiag
    ,它说我安装了DirectX 11。。。不知道为什么我不能做到这一点。

    我在这里找到了答案:

    它说:

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


    如果你安装了Chrome,这里有一个屠夫:

    C:\Users\<USER>\AppData\Local\Google\Chrome\Application\26.0.1410.64
    
    C:\Users\\AppData\Local\Google\Chrome\Application\26.0.1410.64
    
    您需要安装最新的DirectX

    有关D3DCompile的详细信息,以及如何分发各种版本的D3DCompile

    简言之:

    • #43和更早版本由传统DirectX最终用户运行时Redist(又称DirectSetup)部署
    • #46由VS 2012/Windows 8.0 SDK安装,并与Win32桌面应用“并排”部署
    • #47由VS 2013/Windows 8.1 SDK安装,可以与Win32桌面应用“并排”部署,但它也包含在Windows 8.1操作系统中

    试着下载DirectX Distributable,cant hurt.@AmberteMei'mAN00b-我能找到的所有地区都是2010年和DirextX 9。。。将为您获取directx11 SDK。我想2010年的Dist是针对DirectX11的。@Aaron,我也有同样的错误,这就是我修复它的方法。Downvoter-这个答案很有用。我从这里获得了dll,它保存了下载整个Windows SDK的过程。从Chrome 65 x86开始,它附带了
    d3dcompiler_47.dll
    ,而不是
    d3dcompiler_43.dll
    :(太晚了-DX 2010年6月redist安装在您响应时正在运行,现在该程序运行良好:)。(顺便说一下,复活节周末刚刚发布了一个演示,值得一看)有趣的是,在windows 8上,我在windows 8.1上遇到了这个错误,我不明白。文件夹中缺少文件。所以这些信息并不完全正确。我很好奇,这实际上解决了你的问题,还是“你能找到的最佳解决方案”?在我的例子中,它给出了完全相同的错误代码(它调用的是43.dll,而不是46.dll),而较新的版本不会修复它。我必须返回并从旧的directX安装中获取43.dll。缺少的特定版本OP将无法从您提供的链接中安装。我从2010年开始将该文件的来源追溯到“Legacy DirectX”。最新的版本不再包含它了,正如我后来测试的那样,它带来了很大的不同。这对我帮助很大,因为这正是这个错误所要求的。Windows 10上MonoGame上的d3dcompiler_43.dll出现此错误。安装DirectX最终用户运行时解决了这一问题。谢谢