При запуске игры появилось оповещение с предупреждением, что её невозможно запустить, потому как на компьютере отсутствует динамическая библиотека D3DCompiler_47.dll? Рассмотрим, что это за ошибка, как исправить ее в Windows 7 – 8 и за что данный файл отвечает.
Теория
D3DCompiler_47.dll является не частью набора API (интерфейс программирования программного обеспечения) DirectX, как могло подумать большинство более-менее продвинутых пользователей. Это один из компонентов API под названием Direct3D 10-й версии, в котором содержатся функции для обеспечения взаимодействия софта с драйверами графического ускорителя в обход операционной системы.
Direct3D и DirectX – не одно и то же.
Если этот файл отсутствует по адресу, где его ищет программа или игрушка, это вызывает системную ошибку с соответствующим содержимым.
Решения
Кроме момента запуска требующих D3DCompiler_47.dll приложений, приведённые способы получить эту библиотеку применимы и к следующим случаям:
- оповещение, что графический ускоритель не соответствует требованиям для игры;
- утилита dxdiag.exe не может определить объем видеопамяти и версию DX.
Мы не будем скачивать динамическую библиотеку и куда-либо кидать её (в системный каталог или папку с игрой), как советуют гуру на различных сайтах и каналах Youtube, – это не избавит от неполадки и её последствий. Сделаем то, что советую делать представители Microsoft, – установим обновление KB4019990 для получения D3DCompiler_47.dll.
Установка обновления через Wusa.exe
Апдейт можно поставить, конечно, и через Центр обновления, но с ним проблем будет больше. Лучше загрузить необходимые файлы с ресурса Майкрософт и установить их на компьютер или ноутбук при помощи офлайн-установщика Wusa.exe. Он использует API-агент Центра обновлений для инсталляции новых компонентов системы.
- Переходим в нужный нам раздел каталога Центра обновлений.
- Кликаем по кнопке «Загрузить» возле необходимого файла.
Чтобы узнать какой разрядности Windows установлена на вашем компьютере, зажимаем сочетание клавиш [knopka]Win[/knopka] + [knopka]Pause[/knopka], а в открывшемся информационном окне смотрим на строчку «Тип системы» в любой ОС.
В нашем случае это Windows 7 x64.
- Выполняем щелчок по ссылке на файл с расширением msu и закрываем окно.
- По окончании скачивания (занимает не более 3 мегабайт) запускаем его.
Всё остальное выполнится без участия пользователя, поэтому ждем закрытия окошка. В результате в папке system32 появится зарегистрированный в системе D3DCompiler_47.dll.
После лучше обновить DirectX при помощи онлайн-инсталлятора или автономного установщика. Мы рассмотрим только первый способ, так как они почти идентичны. При использовании веб-установщика на ПК будут загружены лишь отсутствующие на нём или устаревшие библиотеки. Во втором случае обзаведётесь инсталлятором, который не раз спасёт от проблем с файлами длл.
- Кликаем по URL для загрузки web-installer.
- Выполняем его и соглашаемся со всем, что там написано.
- Делаем неактивным чекбокс, чтобы отказаться от внедрения панели Bing.
- Ждём, пока программа просканирует систему, загрузит и зарегистрирует отсутствующие в ней библиотеки.
- Закрываем окно.
Установка KB4019990 через командную строку
Wusa.exe – также работает в текстовом режиме, что порой очень удобно.
Для реализации задуманного нам необходимы привилегии администратора.
-
- Открываем с правами администратора командную строку или окно «Выполнить» через «Пуск» либо же комбинацией клавиш [knopka]Win[/knopka] + [knopka]R[/knopka].
- Вводим команду: [kod]wusa.exe c:\W1-kb4019990-x64_35cc310e81ef23439ba0ec1f11d7b71dd34adfe5.msu[/kod].
После названия программы Wusa.exe через пробел идёт путь к файлу и его имя (будет отличаться для других ОС и разрядностей).
При наличии ошибки 0x80040154 необходимо включить службу Центра обновлений.
Советы и исключения из правил
Было бы странно, если бы у всех после выполнения инструкции игра заработала. Относитесь к таковым?
- Убедитесь, что имеете необходимые привилегии в системе для установки обновлений.
- Проверьте, поддерживает ли ваш графический ускоритель DirectX 10, если он старый.
Посетите сайт поддержки устройства или запустите утилиту GPU-Z. Находим строку «Поддержка DirectX» в правом столбике.
- Полностью удалите драйверы для видеокарты, а затем установите их последнюю версию, скачав установщик с официального сайта.
- Порой разработчики, чтобы не допустить подобных недоразумений, размещают в папке с исполняемым файлом игры библиотеку dll. При отсутствии, бросьте её туда, скопировав из C:\Windows\system32.
Не качайте dll-ки из неизвестных источников, а если это сделать и придётся, то обязательно проверьте архив на вирусы через один из онлайн сервисов, например, VirusTotal.