Can't find d3dcompiler_43.dll for DirectX programming
Solution 1
I found the answer here: http://msdn.microsoft.com/en-us/library/windows/desktop/ee663275.aspx
It says:
Any project that uses run-time shader compilation must have D3DCOMPILER_46.DLL copied to the local executable path for the project. This DLL is available in this sub-directory of the Windows SDK installation under %ProgramFiles(x86)%\Windows Kits\8.0\Redist\D3D\arch where arch is x86 and x64.
Solution 2
See this blog post for details about D3DCompile and how you distribute various versions of it...
In short:
- #43 and prior is deployed by the legacy DirectX End-User Runtime Redist (aka DirectSetup).
- #46 is installed by VS 2012 / Windows 8.0 SDK and is deployed 'side-by-side' with your Win32 desktop app
- #47 is installed by VS 2013 / Windows 8.1 SDK and can be deployed 'side-by-side' with your Win32 desktop app, but it is also included with the Windows 8.1 OS.
Solution 3
If you have Chrome installed, worth a butchers in here:
C:\Users\<USER>\AppData\Local\Google\Chrome\Application\26.0.1410.64
Solution 4
You need to install the latest DirectX http://www.microsoft.com/en-us/download/confirmation.aspx?id=35
Comments
-
Ali Mst almost 2 years
I am trying to learn DirectX Programming. But I have hit a snag.
I seem to be missing this file: d3dcompiler_43.dll
I have installed (in this order):
- Visual Studio 2012
- Windows 8
- Windows Phone 8 SDK
- Windows 8 SDK
I figured I need a DirectX SDK, but this link says I do not:
Starting with Windows 8, the DirectX SDK is included as part of the Windows SDK.
Should I just install the DirectX Distributable? I am worried that will give me the dll but I will be missing other things too...
Here is my exact error I am getting:
Unable to load DLL 'd3dcompiler_43.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E)
Update: I ran
dxdiag
and it says I have DirectX 11 installed... Not sure why I can't make this work. -
weston over 10 yearsDownvoter - this answer is useful. I got the dll from here and it saved downloading the whole of Windows SDK.
-
John about 9 yearsFunny thing is, on windows 8 I get this error on windows 8.1 I don't get it. File is missing from folder. So the information is not completely right.
-
Gnemlock over 8 yearsthe particular version OP is missing will not install from the link you provide. I sourced the file back to "Legacy DirectX" from 2010. The latest versions do not include it, anymore, and as I have since tested, it makes a big difference.
-
Gnemlock over 8 yearsThis greatly helped me, as it was specifically the #43 this error was calling for. Other users running into the same problem can download legax Directx End-User Runtime Redist from here.
-
Gnemlock over 8 yearsIm curious, did this actually solve your problem in reality, or was this a "best fix you could find"? In my case, it was giving the exact same error code (which is calling for 43.dll, not 46.dll), and newer versions would not fix it. I had to actually go back and get 43.dll from an old directX install.
-
Zdeněk Gromnica almost 8 yearsGot this error with d3dcompiler_43.dll on MonoGame on Windows 10. Installing the DirectX End-User Runtime solved that. Thanks!
-
cxw about 6 yearsAs of Chrome 65 x86, it comes with
d3dcompiler_47.dll
, notd3dcompiler_43.dll
:( -
cxw about 6 yearsToo late - the DX June 2010 redist install was running while you were responding, and now the program in question works fine :) . (This, by the way - a demo just released over Easter weekend, and well worth a watch)