Не удалось найти 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
Ответ 4
Вам нужно установить последнюю версию DirectX
http://www.microsoft.com/en-us/download/confirmation.aspx?id=35