Сообщение «Запуск программы невозможен, так как на компьютере отсутствует d3dx9_43.dll» или «xinput1_3.dll отсутствует» возникает в играх, собранных под устаревшие библиотеки DirectX. В современной Windows этих файлов по умолчанию нет. Исправляется ошибка установкой официального пакета Microsoft DirectX End-User Runtime; копировать отдельные DLL не нужно. Оговорка: на странице загрузки Microsoft Windows 10 и 11 в списке поддерживаемых систем не названы, подробности ниже.
Откуда берутся эти файлы и почему их нет
Имена файлов читаются из двух частей. d3dx9_43.dll - библиотека D3DX9, вспомогательный слой над Direct3D 9, которым игры пользовались для работы с текстурами, моделями и шейдерами. xinput1_3.dll - версия 1.3 интерфейса XInput для геймпадов. Число в имени показывает выпуск: версия D3DX с номером 43 и XInput 1.3 относятся к июньскому выпуску DirectX SDK 2010 года.
По документации Microsoft, XInput 1.3 и XAudio 2.7 были последними версиями, которые поставлялись как распространяемые файлы в составе DirectX SDK, а сам SDK больше не доступен для скачивания. Начиная с Windows 8 DirectX SDK вошёл в Windows SDK, а библиотеки D3DX9, D3DX10 и D3DX11 Microsoft называет устаревшими.
В самой системе лежат другие версии. XInput 1.4 входит в Windows 10 и 11 как системный компонент, XInput 9.1.0 есть в Windows 7 и новее. Игра, собранная под XInput 1.3, ищет именно xinput1_3.dll, и файл с другим именем ей не подходит. Поэтому такая ошибка не говорит о повреждении Windows: нужного файла в системе нет, пока кто-то его не установил.
Обычно его ставит установщик игры: у многих игр для этого есть отдельный шаг с установкой DirectX. Если шаг пропустили или прервали, либо игру просто скопировали с другого компьютера, библиотеки в системе так и не появляются.
Короткий порядок действий
| Шаг | Что делать | Когда помогает |
|---|---|---|
| 1 | Перезагрузить компьютер, запустить игру от имени администратора | Разовые сбои, нехватка прав |
| 2 | Поставить DirectX End-User Runtime с сайта Microsoft | Основной случай: старая игра, нет библиотек D3DX и XInput 1.3 |
| 3 | Переустановить игру и не пропускать установку DirectX | Установка DirectX была пропущена или прервана |
| 4 | Visual C++ Redistributable, разрядность, DISM и sfc | Ошибка сменилась на другую DLL или на код 0xc000007b |
Шаг 1: перезагрузка и запуск от администратора
Перезагрузите компьютер и запустите игру заново. Затем нажмите на ярлык правой кнопкой и выберите «Запуск от имени администратора». Если игра заработала, откройте «Свойства» - «Совместимость» и включите постоянный запуск с правами администратора. Недостающие библиотеки этот шаг не заменит, поэтому не задерживайтесь на нём дольше пары минут.
Шаг 2: официальный пакет DirectX End-User Runtime
Microsoft публикует два варианта пакета:
- веб-установщик
dxwebsetup.exe, 288,4 КБ, остальные компоненты он докачивает сам: страница веб-установщика; - автономный
directx_Jun2010_redist.exe, 95,6 МБ, подойдёт при нестабильном интернете или для нескольких компьютеров: страница пакета June 2010.
Версия пакета на обеих страницах - 9.29.1974.1, дата публикации - 15 июля 2024 года. Microsoft описывает его как набор библиотек старого DirectX SDK для игр, которые используют D3DX9, D3DX10, D3DX11, XAudio 2.7, XInput 1.3, XACT и Managed DirectX 1.1, и указывает, что пакет не меняет DirectX, уже установленный в Windows.
- Скачайте файл со страницы Microsoft. Адрес страницы должен быть на домене microsoft.com.
- Запустите установщик. Веб-версии нужен доступ в интернет.
- Если в окне установщика есть необязательные предложения со сторонними программами, отключите их.
- Перезагрузите компьютер и запустите игру.
Применим ли пакет к Windows 10 и 11
На обеих страницах в списке поддерживаемых систем указаны Windows XP SP2 и SP3, Vista, 7 и серверные Windows 2003 и 2008. Windows 10 и 11 там не названы, и подтверждения тестирования на них у Microsoft я не нашёл. Известно другое: пакет добавляет отдельные библиотеки и не заменяет установленный DirectX, поэтому попытка установки сама по себе вреда системе не приносит. Если установщик выдаст ошибку или игра по-прежнему не запустится, переходите к шагу 3.
Тот же пакет рассчитан и на другие файлы из этого набора, например xaudio2_7.dll. Это вывод из описания Microsoft, проверенного списка файлов у меня нет.
Шаг 3: переустановка игры
Переустановите игру и дайте установщику поставить DirectX, если он предлагает. После установки первый запуск лучше довести до конца и не закрывать окна, которые игра может открыть для дозагрузки компонентов.
Для игры с диска или из загруженного дистрибутива поищите в папке с установочными файлами подпапку вроде DirectX или _CommonRedist. Названия зависят от конкретной игры, поэтому это ориентир. Если такая папка есть, запуск DXSETUP.exe оттуда ставит компоненты, которые разработчик положил вместе с игрой.
Шаг 4: если ошибка сменилась на другую
После установки пакета Windows может начать сообщать о другой DLL, например MSVCP140.dll или VCRUNTIME140.dll. Игре нужен ещё один компонент: Visual C++ Redistributable. Он разобран в статье Не найден DLL при запуске программы, там же есть проверка системных файлов через DISM и sfc. Если вместо имени файла выводится код 0xc000007b, причина обычно в несовпадении разрядности 32 и 64 бита, и порядок действий другой - в статье Ошибка 0xc000007b при запуске программы или игры.
Что с этими файлами в каталоге mirsofta.ru
В каталоге есть справочные карточки обоих файлов: d3dx9_43.dll (по данным карточки - Microsoft DirectX Direct3D 9, выпуск июня 2010, версия 9.29.952.3111) и xinput1_3.dll (Microsoft Common Controller API, версия 9.15.779.0). Карточка помогает сверить имя, версию и размер файла, который ищет игра. Исправлять ошибку лучше пакетом Microsoft. Остальные библиотеки на букву D можно найти в списке DLL на D.
Чего делать не нужно
- Скачивать
d3dx9_43.dllилиxinput1_3.dllс сайтов вида «dll скачать». Никто не отвечает за содержимое такого файла, а библиотека с системным именем удобна для скрытой установки вредоносного кода. Разрядность и версия тоже могут не совпасть с тем, что нужно игре. - Копировать DLL в
System32вручную. На 64-битной Windows 32-битным программам нужны 32-битные библиотеки, а они лежат в другой папке (SysWOW64). Перепутать их легко, и тогда ошибка останется или сменится на другую. - Ставить «сборки DirectX» из архивов и репаков. Версия внутри не подтверждена. Берите пакет со страницы Microsoft или из папки лицензионной игры.
- Отключать антивирус на время установки. Пакет Microsoft этого не требует. Если защита удалила файл игры, проверьте карантин и восстановите файл оттуда.
- Переустанавливать Windows ради одной игры. Пока не пробованы шаги выше, для такого шага нет оснований.
Если игра всё равно не запускается
Запишите точный текст ошибки с именем файла, разрядность и версию Windows (Параметры - Система - О системе) и название игры. Запрос вроде «ошибка d3dx9_43 gta 5» встречается у разных игр, и у каждой могут быть свои требования: их указывает разработчик на странице игры или в поддержке. Общий совет с чужого форума без подтверждения от разработчика или Microsoft считайте непроверенным.
Источники
- DirectX End-User Runtime Web Installer - Microsoft Download Center
- DirectX End-User Runtimes (June 2010) - Microsoft Download Center
- XInput Versions - Microsoft Learn
- Where is the DirectX SDK? - Microsoft Learn
- XAudio2 Versions - Microsoft Learn
Другие материалы о Windows и софте - в разделе «Статьи» на mirsofta.ru.