简体   繁体   中英

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.

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.

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.

如果你安装了Chrome,那么值得一个屠夫:

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM