Ошибка 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 для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.