Отсутствует d3dx9_39.dll, d3dx9_43.dll в Windows 10/11: Запуск старых игр
Архитектура DirectX и проблема Legacy-компонентов
Ошибки вида d3dx9_39.dll, d3dx9_43.dll, xinput1_3.dll или X3DAudio1_7.dll не найдены при запуске старых игр (или специфичного ПО) возникают из-за отсутствия библиотек DirectX 9.0c. Современные ОС (Windows 10/11) поставляются со встроенными DirectX 11/12, но они не включают в себя динамические библиотеки предыдущих поколений (DirectX 9/10). Архитектура DX12 не является обратно совместимой на уровне DLL-файлов. Бизнес/пользовательские риски: невозможность запуска legacy-клиентов, старого 3D-моделирующего ПО, краш программ на старте.
Симптоматика по файлам
| Имя файла (Missing DLL) | За что отвечает | Требуемый компонент |
|---|---|---|
d3dx9_*.dll (от 24 до 43) | Direct3D 9 Extensions (шейдеры, текстуры) | DirectX End-User Runtimes (June 2010) |
xinput1_3.dll | Обработка геймпадов (XInput API) | DirectX End-User Runtimes (June 2010) |
x3daudio1_7.dll | Пространственный звук (3D Audio) | DirectX End-User Runtimes (June 2010) |
Алгоритм восстановления библиотек DirectX 9
Сценарий 1: Установка пакета DirectX (June 2010)
Никогда не качайте отдельные DLL. Вам нужен полный установочный пакет от Microsoft.
- Перейдите на сайт Microsoft и скачайте DirectX End-User Runtimes (June 2010). (Внимание: Web-установщик dxwebsetup.exe часто не работает из-за отключения старых серверов MS, качайте полный оффлайн пакет весом ~95 МБ).
- Запустите скачанный
directx_Jun2010_redist.exe. Важно: Это не установка, это самораспаковывающийся архив! Укажите любую пустую папку (например, C:\DX). - Перейдите в папку C:\DX, найдите там файл DXSETUP.exe и запустите его от имени Администратора.
- Дождитесь завершения установки, библиотеки будут зарегистрированы в SysWOW64 и System32.
Сценарий 2: Включение DirectPlay (Для игр 2000-2005 годов)
Если игра требует старый сетевой протокол DirectX.
Активация компонента DirectPlay через PowerShell
Enable-WindowsOptionalFeature -Online -FeatureName "DirectPlay" -AllИли через GUI: Панель управления -> Программы и компоненты -> Включение или отключение компонентов Windows -> Компоненты прежних версий -> поставить галочку DirectPlay.
Типовые ошибки администраторов
- Копирование DLL в папку с игрой: Скачивание "d3dx9_39.dll" из интернета. Игра может запуститься, но через минуту вылетит из-за отсутствия связанных аудио-библиотек (xactengine) или выдаст ошибку
0xc000007bиз-за несовпадения разрядности (закинули x64 файл в x86 игру).
Интеграция старых зависимостей (DX9, .NET 2.0, старые C++) в современные образы ОС — сложная задача. Эксперты ITSTM подготовят кастомные WIM-образы с предустановленными и настроенными legacy-компонентами для бесшовного развертывания.
Частые вопросы (FAQ)
Почему Windows 11 не поддерживает DirectX 9 из коробки?
Microsoft удалила устаревшие и небезопасные библиотеки из базового образа ОС для экономии места и повышения безопасности. Поддержка D3D9 сейчас осуществляется через слой трансляции (D3D9On12), но сами файлы DLL всё равно нужно доустанавливать.
dxwebsetup.exe выдает ошибку интернета, что делать?
Microsoft отключила старые сервера загрузки, к которым обращается этот маленький (200 КБ) веб-инсталлятор. Вам нужно искать и скачивать полную автономную версию: 'DirectX Redist (June 2010)'.
Я установил пакет, но ошибка 0xc000007b осталась. Почему?
Вы ранее скачали DLL вручную и закинули в папку System32 или SysWOW64. Оф. инсталлятор не может перезаписать ваш файл. Найдите 'ручной' d3dx9_39.dll, удалите его, и запустите DXSETUP.exe заново.
Что такое DirectPlay?
Это устаревший сетевой API из состава DirectX, использовавшийся для мультиплеера в играх начала 2000-х (например, Stronghold, GTA San Andreas). По умолчанию в Win 10/11 он отключен из соображений безопасности.