Программа не запускается и выдаёт окно с текстом вроде «Запуск невозможен, отсутствует MSVCP140.dll» — именно в этом сообщении уже содержится главный ответ на вопрос, какой DLL нужен. Система Windows сама сообщает имя отсутствующей библиотеки, и задача пользователя сводится к тому, чтобы правильно прочитать ошибку и понять, к какому пакету относится файл.
Сложнее ситуация, когда сообщение расплывчатое («точка входа в процедуру не найдена») или программа молча закрывается. В таких случаях придётся применить диагностику: посмотреть журнал событий, проанализировать зависимости исполняемого файла или проверить разрядность системы. Разберём все рабочие способы по порядку — от самого простого к продвинутым.
Читаем текст ошибки: самый быстрый способ
В подавляющем большинстве случаев имя нужного DLL указано прямо в окне ошибки. Запишите его точно, символ в символ, включая цифры в конце — например, vcruntime140.dll и vcruntime140_1.dll это разные файлы, и подмена одного другим не поможет.
Обратите внимание на формулировку сообщения. Фраза «отсутствует» или «не найден» означает, что файла нет в системе вовсе. Фраза «не является приложением Win32» или «точка входа не найдена» говорит о другом: файл есть, но он повреждён, не той версии или несовместимой разрядности. Лечение в этих случаях разное.
- 🔎 «Отсутствует X.dll» — файл нужно установить вместе с соответствующим пакетом.
- ⚙️ «Точка входа в процедуру не найдена» — вероятно, установлена устаревшая версия библиотеки.
- 🧩 «Не удаётся загрузить DLL» — возможна несовместимость разрядности (32/64 бит).
- 🚫 Ошибка 0xc000007b — часто связана с конфликтом 32- и 64-битных библиотек.
Определяем, к какому пакету относится DLL
Зная имя файла, нужно понять, откуда он берётся. Случайная загрузка DLL со сторонних сайтов — плохая идея: правильный путь — установить официальный пакет, в состав которого входит библиотека. Ниже — соответствие самых частых DLL их источникам.
| Имя DLL | Пакет-источник | Типичные программы |
|---|---|---|
| msvcp140.dll, vcruntime140.dll | Visual C++ Redistributable 2015–2022 | Игры, офисные и графические программы |
| msvcp120.dll, msvcr120.dll | Visual C++ Redistributable 2013 | Старые игры и утилиты |
| d3dx9_43.dll, xinput1_3.dll | DirectX End-User Runtime (устаревшие компоненты) | Игры эпохи DirectX 9 |
| x3daudio1_7.dll, xaudio2_7.dll | DirectX End-User Runtime | Игры со старым звуковым движком |
| api-ms-win-crt-*.dll | Обновление Universal CRT / Visual C++ | Программы на старых версиях Windows |
Если имя DLL не похоже ни на один из примеров, введите его в поисковик вместе со словом «относится к» — обычно по первым результатам видно, какой пакет или программа поставляют этот файл. Ориентируйтесь на официальные источники: сайт Microsoft, страницу разработчика программы или документацию к игре.
⚠️ Внимание: не скачивайте отдельные DLL-файлы с сайтов-каталогов библиотек. Такие файлы могут быть устаревшими, неподходящей разрядности или вредоносными. Безопасный способ — установка официального пакета целиком.
Смотрим журнал событий Windows
Когда программа закрывается без видимого сообщения, имя проблемной библиотеки можно найти в Просмотре событий. Нажмите Win + R, введите команду и подтвердите:
eventvwr.msc
Откройте раздел Журналы Windows → Приложение и найдите записи с уровнем «Ошибка» в момент сбоя. В описании события с источником Application Error обычно указаны два важных поля: имя сбойного приложения и имя сбойного модуля — это и есть DLL, из-за которой происходит падение.
Записей в журнале много, поэтому проще всего воспроизвести ошибку: запустите программу ещё раз и сразу обновите журнал клавишей F5 — свежая ошибка окажется вверху списка.
Анализируем зависимости исполняемого файла
Если нужно узнать заранее, какие DLL требуются программе, используются специальные анализаторы зависимостей. Классический инструмент — Dependency Walker, более современная альтернатива — Dependencies (открытый проект, работает с современными приложениями). Оба открывают EXE- или DLL-файл и показывают дерево всех библиотек, которые он загружает.
Порядок действий простой: запустите анализатор, откройте через меню File → Open исполняемый файл программы и дождитесь построения дерева. Отсутствующие библиотеки будут подсвечены — по их именам и определяется, чего не хватает в системе.
☑️ Проверка зависимостей программы
Учтите ограничение метода: анализатор показывает статические зависимости. Некоторые программы подгружают DLL динамически во время работы, и такие библиотеки в дереве не отобразятся. Если статический анализ ничего не дал, вернитесь к журналу событий.
Что такое динамическая загрузка DLL
Программа может вызывать функцию LoadLibrary уже во время работы и подгружать библиотеку по условию — например, только при включении определённой функции. Такие зависимости не видны статическим анализаторам, их выявляют по журналу событий или средствами мониторинга вроде Process Monitor.
Проверяем разрядность системы и библиотеки
Частая скрытая причина ошибок — несовпадение разрядности. 64-битная программа требует 64-битные DLL, 32-битная — 32-битные, даже если система у вас 64-разрядная. Узнать разрядность Windows можно так: Параметры → Система → О системе → Тип системы.
Разрядность самой программы определяется по её расположению или через Диспетчер задач: на вкладке «Подробности» для 32-битных процессов в ряде версий Windows отображается пометка. Также 32-битные программы обычно устанавливаются в папку Program Files (x86).
- 💻 64-битная Windows — устанавливайте оба варианта Visual C++ Redistributable: x64 и x86.
- 📁 System32 — парадоксально, но в 64-битной Windows здесь лежат 64-битные DLL.
- 📁 SysWOW64 — а здесь находятся 32-битные библиотеки для 32-битных программ.
- 🔄 Ошибка 0xc000007b — типичный признак того, что программа подхватила DLL не той разрядности.
⚠️ Внимание: не копируйте DLL вручную в папки System32 или SysWOW64 без понимания разрядности файла. Неправильное размещение создаёт новые ошибки, а перезапись системных библиотек может нарушить работу других программ.
Проверяем целостность системных файлов
Если DLL на месте, но ошибка persists — файл может быть повреждён. В Windows есть встроенное средство проверки: запустите командную строку от имени администратора и выполните:
sfc /scannow
Проверка занимает некоторое время. Если утилита найдёт повреждённые системные файлы, она попытается восстановить их из хранилища компонентов. При неудаче дополнительно используется команда DISM /Online /Cleanup-Image /RestoreHealth, после чего проверку sfc повторяют.
Для библиотек, входящих в состав конкретной программы, эффективнее её переустановка или функция «Восстановить» в установщике. Для игр в клиентах вроде Steam есть проверка целостности файлов: она автоматически докачает недостающие и заменит повреждённые компоненты.
Часто задаваемые вопросы
Можно ли просто скачать недостающий DLL из интернета?
Технически можно, но это рискованно: файл может оказаться не той версии или разрядности, а на непроверенных сайтах встречаются вредоносные подделки. Правильный способ — установить официальный пакет (Visual C++ Redistributable, DirectX и т. п.), в состав которого входит нужная библиотека.
Почему ошибка осталась, хотя я установил нужный пакет?
Возможные причины: установлена версия не той разрядности (нужны обе — x86 и x64), требуется перезагрузка, либо программе нужна более старая версия пакета — например, Visual C++ 2013 вместо 2015–2022. Проверьте точное имя DLL в ошибке ещё раз.
Как узнать, какие DLL нужны программе до её установки?
Откройте её EXE-файл в анализаторе зависимостей (Dependencies или Dependency Walker) — дерево покажет статические зависимости. Также системные требования программы на сайте разработчика обычно указывают нужные версии Visual C++, DirectX или .NET.
Что делать, если в ошибке указан DLL с непонятным именем?
Введите имя файла в поисковик — по результатам обычно видно, какой программе или пакету он принадлежит. Если библиотека относится к самой сбоящей программе, поможет её переустановка; если к системе — проверка через sfc /scannow.
Почему программа работала раньше, а теперь требует DLL?
Возможные причины: обновление программы изменило список зависимостей, библиотека была удалена при деинсталляции другого ПО, файл повредился или его удалил антивирус. Проверьте карантин антивируса и переустановите соответствующий пакет.