Ошибка 0xc000007b — решение и причины

Запуск приложения или игры сопровождается ошибкой  «Ошибка при запуске приложения (0xc000007b)»

Решение - Ошибка при запуске приложения (0xc000007b)

Решение ошибки 0xc000007b при запуске игр:

  1. Способ быстрый и простой, чаще всего ошибка 0xc000007b возникает из-за отсутствия библиотек нужной разрядности, в случае игр необходимо установить Microsoft Visual C++ Redistributable, ссылки есть тут устанавливайте все версии. Еще надо установить/обновить DirectX, это обязательно, установщик проверит и добавит недостающие библиотеки.
  2. Иногда библиотеки DirectX повреждаются, чаще всего это почему-то происходит с файлами d3dx9_24.dll и заканчивая d3dx9_42.dll. Эти файлы лежат в папках Windows\System32, и если Windows 64-bit то надо проверить папку Windows\SysWOW64. Везде рекомендуют их удалить и установить DirectX заново, я бы советовал не удалять а перенести их в другую папку на всякий случай, и  установить DirextX, в случае проблем можно будет вернуть все обратно. Да, и для их переноса надо будет загрузиться в безопасном режиме.

Решение ошибки 0xc000007b в приложениях:

Основная причина в том что 32-х битное приложение, пытается использовать 64-битную библиотеку, при запуске, приложение загружает необходимые библиотеки, и если не находит 32-х битную версию библиотеки, пытается загрузить 64-х битную что и приводит к ошибке 0xc000007b.

Для того чтобы определить какой библиотеки не хватает приложению, загрузите нужную версию утилиты Dependency walker, запустите ее, и откройте в ней исполняемый файл (*.exe), должно получиться что-то вроде такого:

Решение ошибки 0xc000007b в приложениях

В древовидном меню слева надо найти подсвеченную красным библиотеку, кликнуть и в окошке внизу будет написана причина, если есть что-то вроде «Error opening file», значит проблема в том что не хватает этой библиотеки нужной разрядности. Теперь остается дело техники, погуглить название нужной библиотеки, и установить ее. Чаще всего не хватает библиотек Microsoft Visual C++ Redistributable, нужной разрядности, их нужно устанавливать в первую очередь.

Еще один вариант решения, с помощью утилиты Process monitor

  • Скачиваем и запускаем программу Process Monitor, в ней надо сделать такие настройки:Oshibka-0xc000007b-reshenie-i-prichiny-01
  • Запускаем приложение после появления ошибки 0xc000007b жмем ок
  • Затем переходим в Process Monitor,  и сохраняем лог, жмем File > Save > выбираем формат CSV
  • Получившийся файл выкладываем на любой файлообменник, ссылку кидайте в комментарии
  • Я посмотрю лог и скажу что надо проделать в вашем случае.
  • Все действия крайне желательно проделывать быстро, что бы лог-файл получился как можно меньшего размера

Еще один более быстрый и простой способ найти проблемную библиотеку вызывающую ошибку 0xc000007b, с помощью утилиты Dependency Walker 2.2 x64:

  1. Скачайте Dependency Walker 2.2 x64 и распакуйте в папку например на диск C:\dw
  2. Запустите командную строку от имени администратора и выполните команду cd c:\dw
  3. Узнайте путь к исполняемому файлу приложения которое вызывает ошибку 0xc000007b
  4. Выполните команду depends.exe /c /f:1 /pb /pp:1 /pg:1 /ot:Log.txt «C:\Program Files (x86)\Sid Meiers Railroads\Railroads.exe»
  5. Где C:\Program Files (x86)\Sid Meiers Railroads\Railroads.exe — путь к приложению
  6. Если Вы все сделали верно, то команда из пункта 4 запустит приложение и Вы увидите ошибку 0xc000007b, нажмите «ок»
  7. В папке куда вы распаковали приложение на первом шаге, должен появиться файл  Log.txt
  8. Не пугайтесь если он окажется достаточно большого размера, ищите строки выделенные жирным они укажут на проблемную библиотеку:Error: Modules with different CPU types were foundError: At least one file was not a 32-bit or 64-bit Windows moduleAt least one module was corrupted or unrecognizable to Dependency Walker, but still appeared to be a Windows module
  9. Далее загуглите название библиотеки, определите из какого она пакета и установите/переустановите его.

9 комментариев к “Ошибка 0xc000007b — решение и причины”

    1. какое приложение вызывает эту ошибку?

      Если хотите в логе самостоятельно разобраться в чём причина ошибки, то:
      1. Сначала нужно найти момент ошибки, для этого ищите в логе строку SystemHand (дело в том, что сообщение об ошибке выводится в стандартном MessageBox с характерным звуком Critical Stop, процесс taskhost.exe считывает его из раздела HKCU\AppEvents\Schemes\Apps\.Default\SystemHand\.Current)
      Пример:
      «10:05:51,0430432″,»taskhost.exe»,»2448″,»RegQueryValue»,»HKCU\AppEvents\Schemes\Apps\.Default\SystemHand\.Current\(Default)»,»SUCCESS»,»Type: REG_SZ, Length: 86, Data: C:\Windows\media\Windows Critical Stop.wav»;
      2. Когда найдёте эту строчку пролистайте (с помощью ползунка) вверх и смотрите последние события от процесса проблемного приложения (игры или программы),там вы найдёте какой файл даёт сбой.
      Пример:
      «10:05:51,0047320″,»HawkenGame-Win32-Shipping.exe»,»3200″,»Load Image»,»C:\Windows\SysWOW64\d3dx9_43.dll»,»SUCCESS»,»Image Base: 0xc50000, Image Size: 0x263000″
      «10:05:51,0047616″,»HawkenGame-Win32-Shipping.exe»,»3200″,»CloseFile»,»C:\Windows\SysWOW64\d3dx9_43.dll»,»SUCCESS»,»»
      3. Определите чей это файл ( это файл либо DirectX, либо Microsoft Visual C++).
      Удалите его и переустановите ( или восстановите ) Microsoft Visual C++, или восстановите DirectX с помощью Веб-установщик исполняемых библиотек DirectX.

    1. Чего-то криминального в логе не видно, попробуйте:

      1. проверить диски на ошибки
      2. запускать игру от имени администратора
      3. проверить целостность системных файлов командной sfc /scannow
      4. утилитами типа ccleaner проверить и исправить ошибки реестра

    1. 2011-2015 версии снес

      этого делать не надо, в разных версиях разные библиотеки, между собой они не конфликтуют вроде.

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.