Не удалось найти d3dcompiler_43.dll для программирования DirectX

Я пытаюсь изучить DirectX Programming. Но я попал в ловушку.

Мне кажется, что этот файл отсутствует: d3dcompiler_43.dll

Я установил (в этом порядке):

  • Visual Studio 2012
  • Windows 8
  • SDK для Windows Phone 8
  • SDK для Windows 8

Я решил, что мне нужен DirectX SDK, но эта ссылка говорит, что я не:

Начиная с Windows 8, SDK DirectX включен как часть SDK Windows.

Должен ли я просто установить дистрибутив DirectX? Я беспокоюсь, что даст мне dll, но я тоже буду пропускать другие вещи...

Вот моя точная ошибка, которую я получаю:

Невозможно загрузить DLL 'd3dcompiler_43.dll': указанный модуль не найден. (Исключение из HRESULT: 0x8007007E)

Обновление: Я запускал dxdiag, и он говорит, что у меня установлен DirectX 11... Не знаю, почему я не могу сделать эту работу.

Ответы

Ответ 1

Я нашел ответ здесь: http://msdn.microsoft.com/en-us/library/windows/desktop/ee663275.aspx

В нем говорится:

Любой проект, который использует компиляцию шейдера во время выполнения, должен иметь D3DCOMPILER_46.DLL, скопированный на локальный исполняемый путь для проекта. Эта DLL доступна в этом подкаталоге установки Windows SDK в папке% ProgramFiles (x86)%\Windows Kits\8.0\Redist\D3D\arch, где arch - x86 и x64.

Ответ 2

Подробнее см. в этом блоге для получения подробной информации о D3DCompile и о том, как вы распространяете его различные версии...

Короче:

  • # 43 и предыдущий развертывается устаревшим Redtime конечным пользователем Runtime Redist (он же DirectSetup).
  • # 46 установлен VS 2012/Windows 8.0 SDK и развернут "бок о бок" с вашим настольным приложением Win32.
  • # 47 установлен VS 2013/Windows 8.1 SDK и может быть развернут "бок о бок" с вашим настольным приложением Win32, но он также включен в ОС Windows 8.1.

Ответ 3

Если у вас установлен Chrome, стоит здесь мясников:

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