#Что означает ошибка
Запуск программы невозможен, так как на компьютере отсутствует d3dcompiler_47.dll
d3dcompiler_47.dll — компилятор шейдеров DirectX, входящий в Windows 8.1 и новее и в обновления Windows 7. Игры, браузеры и программы с графикой используют его при запуске. Ошибка «Запуск программы невозможен, так как на компьютере отсутствует d3dcompiler_47.dll» чаще всего возникает на Windows 7 без обновлений или после удаления файла антивирусом. Скачивать DLL с сайтов не нужно: это небезопасно и не решает причину.
#Причины и решения
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| Не установлены обновления WindowsНет обновления с библиотекой (Windows 7). | Windows 7 без пакетов обновлений. | Установите обновления. |
| Повреждён DirectXКомпоненты DirectX повреждены. | Другие игры тоже не запускаются. | Установите DirectX Runtime. |
| Файл удалён антивирусомАнтивирус счёл файл подозрительным. | В карантине есть DLL. | Восстановите из карантина. |
| Повреждены системные файлыФайлы системы повреждены. | sfc находит ошибки. | sfc и DISM. |
#Пошаговое решение
- Установите обновления WindowsЕсли приложение сообщает об отсутствии
d3dcompiler_47.dll, сперва узнайте свою версию Windows:Win+R→winver. На поддерживаемых Windows откройте «Параметры» → «Центр обновления Windows» и установите доступные системные исправления, затем перезагрузитесь. Не скачивайте отдельно DLL из случайных каталогов. - Для Windows 7На Windows 7 SP1 библиотека может предоставляться через официальный пакет обновления Microsoft, в том числе KB4019990 (при подходящей архитектуре и предпосылках). Скачайте совместимую версию из Microsoft Update Catalog на другом устройстве, проверьте её подлинность и требования, установите
.msu, перезагрузитесь. Без SP1 и обновлений подписи установка может не сработать. - Не путайте старые библиотеки DirectX и d3dcompiler_47.dllОфициальные дополнительные библиотеки DirectX June 2010 можно установить для старых игр через полный пакет и
DXSETUP.exe, но этот пакет не является основным источникомd3dcompiler_47.dll. Если проблема касается именно 47-й версии, сначала проверьте обновления Windows и поставку приложения. - Установите Visual C++Если ошибка сменилась на отсутствующий
VCRUNTIME/MSVCP, откройте Microsoft Learn по поддерживаемым Visual C++ Redistributable и установите пакет нужной программы и разрядности. Не пытайтесь лечитьd3dcompiler_47.dllустановкой всех наборов VC++ без подтверждения. - Проверьте карантин антивирусаЕсли антивирус помещал файл приложения в карантин, откройте «Безопасность Windows» → «Защита от вирусов и угроз» → «Журнал защиты». Убедитесь, что файл действительно из официального установщика, и обратитесь к издателю при ложном срабатывании; не выключайте защиту целиком.
- Проверьте системные файлыВ административной командной строке выполните
sfc /scannow; на Windows 10/11 при повреждениях сначалаDISM /Online /Cleanup-Image /RestoreHealth, затем SFC. Запишите итог. На Windows 7 параметры DISM для восстановления хранилища отличаются — не переносите команду 10/11. - Проверьте наличие файлаДля диагностики только факта наличия файла откройте Проводник и проверьте
C:\Windows\System32и (на x64)C:\Windows\SysWOW64, однако наличие не доказывает совместимости с программой. Не копируйте DLL между этими папками и не меняйте их разрешения. - Переустановите программуЕсли ошибка проявляется только у одного приложения, в Steam/Epic проверьте целостность файлов или скачайте установщик программы заново с сайта разработчика. После установки запустите тот же сценарий; если сообщение сохраняется, передайте разработчику версию Windows и точный текст ошибки.
- Проверка наличия библиотеки и восстановление системыWindows · Командная строка (CMD)КомандаПрава администратораПроверка наличия библиотеки и восстановление системы.
dir C:\Windows\System32\d3dcompiler_47.dlldir C:\Windows\SysWOW64\d3dcompiler_47.dllsfc /scannowDISM /Online /Cleanup-Image /RestoreHealth
Если игра запускается через Steam или Epic, проверьте целостность файлов игры: лаунчер заново положит нужную копию библиотеки в каталог игры. Для 32-битных программ нужна 32-битная версия библиотеки в SysWOW64, для 64-битных — в System32. На Windows 10 и 11 библиотека входит в систему, поэтому её отсутствие указывает на повреждение: выполните «обновление на месте». Справка — .