Ошибка 0xc000007b: как проверить разрядность и компоненты приложения

Содержание статьи
- Invalid image format — это класс ошибки, а не имя повреждённого файла
- Проверка другой программы отделяет локальную установку от Windows
- Пакеты Visual C++ устанавливают с учётом x86 и x64
- Чистая переустановка программы безопаснее замены библиотек
- DISM и SFC оправданы, когда повреждение затрагивает систему
0xc000007b соответствует статусу Windows STATUS_INVALID_IMAGE_FORMAT: приложение попыталось загрузить исполняемый образ или компонент в неподходящем формате. Код не называет одну конкретную DLL и не доказывает, что виноват DirectX.
Начинайте с границы сбоя. Если не запускается одна программа, ремонтируйте её установку. Если одновременно перестали открываться разные приложения, проверяйте общие компоненты и Windows.
Invalid image format — это класс ошибки, а не имя повреждённого файла
Сообщение часто возникает при несовместимости архитектуры или повреждении компонента, который загружается вместе с программой. Подмена случайных DLL из интернета опасна: файл может иметь другую версию, разрядность или содержать вредоносный код.
Запишите название программы, момент появления ошибки и изменения перед сбоем. Если сообщение началось после ручного копирования DLL в папку приложения, удалите только внесённый вами файл и верните программу к штатной установке.
Проверка другой программы отделяет локальную установку от Windows
Перезагрузите компьютер и запустите проблемное приложение обычным способом. Затем откройте две независимые программы, которые работали раньше. Успешный запуск остальных приложений делает локальную переустановку первым разумным шагом.
Если сбой относится к игре или специализированной программе, используйте функцию проверки файлов её официального установщика или магазина. Не переносите библиотеки с другого компьютера: совпадающее имя файла не гарантирует совместимость.
Пакеты Visual C++ устанавливают с учётом x86 и x64
Microsoft публикует отдельные Visual C++ Redistributable для x86, x64 и ARM64. На 64-разрядной Windows могут одновременно требоваться x64-компоненты для 64-разрядной программы и x86-компоненты для 32-разрядной.
Получайте установщики только на официальном сайте Microsoft. Если пакет уже установлен, сначала выберите его восстановление. Удалять все версии Visual C++ подряд не следует: разные программы могут зависеть от разных поддерживаемых пакетов.
Windows 10 Pro
Windows 10 Home Retail
Чистая переустановка программы безопаснее замены библиотек
- Сохраните пользовательские файлы и настройки приложения.
- Удалите только проблемную программу штатным способом.
- Перезагрузите Windows.
- Скачайте актуальный установщик у разработчика или в официальном магазине.
- Установите приложение и проверьте первый запуск без сторонних модификаций.
Если чистая копия запускается, не возвращайте старые плагины все сразу. Подключайте их по одному, чтобы определить несовместимый компонент.
DISM и SFC оправданы, когда повреждение затрагивает систему
Если ошибка появляется в нескольких несвязанных приложениях или Windows сообщает о повреждении компонентов, откройте терминал от имени администратора. Сначала выполните DISM.exe /Online /Cleanup-image /Restorehealth, дождитесь завершения, затем запустите sfc /scannow.
После проверки перезагрузите компьютер и повторите запуск. Если код сохранился только у одной программы, вернитесь к её журналу и поддержке разработчика; переустановка Windows на этом этапе не обоснована.
Частые вопросы
Нужно ли переустанавливать DirectX при 0xc000007b?
Нет, DirectX здесь виноват не чаще прочего: статус STATUS_INVALID_IMAGE_FORMAT говорит только о том, что загружаемый образ или компонент оказался в неподходящем формате. Начинать нужно с границы сбоя — не запускается одна программа или сразу несколько.
У меня 64-разрядная Windows — достаточно ли поставить только x64-версию Visual C++?
Нет. Visual C++ Redistributable выпускается отдельно для x86, x64 и ARM64, и на 64-разрядной системе одновременно могут требоваться x64-компоненты для 64-битной программы и x86-компоненты для 32-битной. Разрядность подбирается под приложение, а не под Windows.
Помогает ли удалить все пакеты Visual C++ и поставить их заново?
Это чаще ломает соседние программы: разные приложения зависят от разных поддерживаемых версий пакета. Если нужный пакет уже установлен, выберите в его установщике восстановление, а сам установщик берите только на официальном сайте Microsoft.
Ошибка началась после того, как я вручную скопировал DLL в папку программы — как откатить?
Удалите только тот файл, который добавили сами, и верните программу к штатной установке — например, через проверку файлов в её официальном установщике или магазине. Переносить библиотеку с другого компьютера вместо этого не стоит.
Когда оправданы DISM и SFC и в каком порядке их запускать?
Только если 0xc000007b появляется в нескольких несвязанных приложениях или Windows сама сообщает о повреждении компонентов. Порядок такой: в терминале от администратора сначала DISM.exe /Online /Cleanup-image /Restorehealth до полного завершения, затем sfc /scannow и перезагрузка.