Vaccano
Vaccano

Reputation: 82507

Can't find d3dcompiler_43.dll for DirectX programming

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):

  1. Visual Studio 2012
  2. Windows 8
  3. Windows Phone 8 SDK
  4. 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.

Upvotes: 16

Views: 20887

Answers (4)

Chuck Walbourn
Chuck Walbourn

Reputation: 221

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.

Upvotes: 5

Alex Lapa
Alex Lapa

Reputation: 1159

You need to install the latest DirectX http://www.microsoft.com/en-us/download/confirmation.aspx?id=35

Upvotes: 3

weston
weston

Reputation: 54811

If you have Chrome installed, worth a butchers in here:

C:\Users\<USER>\AppData\Local\Google\Chrome\Application\26.0.1410.64

Upvotes: 3

Vaccano
Vaccano

Reputation: 82507

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.

Upvotes: 15

Related Questions