Решение ошибки 0xc000007b при запуске программ или игр
Ошибка 0xc000007b – это обобщённая ошибка, которая может возникать при запуске некоторых приложений. Если не указаны дополнительные диагностические данные, то установить, в чём именно проблема, достаточно сложно. Сегодня мы постараемся разобраться в самых распространённых причинах появления ошибки 0xc000007b в операционных системах Windows и решить их.
Краткая аннотация
В подавляющем большинстве случаев, причиной появления ошибки 0xc000007b являются:- Запуск приложения неподходящей разрядности (32/64-bit)
Скачайте версию приложения, совместимую с Вашей ОС. Если у Вас установлена 32-разрядная ОС, используйте только 32-разрядные дистрибутивы. В случае, если у Вас 64-разрядная версия ОС, попробуйте использовать обе версии приложения: и 32-разрядную, и 64-разрядную. - Повреждение библиотек Visual C++, DirectX или .NET Framework
Необходимо переустановить данные библиотеки: для 32-разрядной ОС только 32-разрядные дистрибутивы, а для 64-разрядной ОС – и 32-разрядные дистрибутивы, и 64-разрядные. - При запуске игр или приложений, использующих отрисовку графики (растровые, векторные, 3D и видео-редакторы) – обновление или переустановка драйвера GPU
Иногда приложения, использующие мощности видеоадаптера, несовместимы с работой с определённой версией драйвера GPU. Рекомендуем обновить драйвер видеоадаптера с «чистой» установкой, то есть удалением предыдущей версии драйвера и установкой новой.
Среди причин, из-за которых данная ошибка может проявляться:
- Несовместимость разрядности программы и ОС
- Несовместимость программы или игры и версии Windows
- Ограничение доступа к компонентам, необходимым для запуска программы
- Повреждение необходимых для работы программы библиотек
- Повреждение файлов программы
- Повреждение файлов операционной системы
- Ограничение запуска антивирусным программным обеспечением
- Повреждение файлов драйверов или конфликт драйверов с программой
- Продвинутый способ: Диагностика ошибки программой Dependency Walker
Несовместимость разрядности
Для начала стоит вкратце и совсем немного углубиться в дебри низкоуровневой работы компьютера. Процессор обрабатывает команды от операционной системы с помощью так называемых «машинных слов» определённой длины. На момент написания статьи, в подавляющем большинстве процессоров реализована поддержка машинных слов длиной 64 бита, однако всё ещё встречаются процессоры с поддержкой только 32-битных машинных слов.
Windows использует два типа разрядности ОС: 32 бита (32-bit или x86) и 64 бита (64-bit, x64, x86_64). Современное программное обеспечение так же создаётся под определённую разрядность операционной системы, и в современном мире разработчики зачастую создают два дистрибутива программы: и под 32 бита, и под 64.
Исходя из написанного выше, можно понять, что программы и игры, написанные под 64-разрядную ОС запустятся только на 64-разрядной ОС и не запустятся на 32-разрядной версии Windows. С 32-разрядными программами дела обстоят немного иначе: такие программы запустятся как на 32-разрядной системе (так как изначально и написаны под 32-разрядную систему), но также она запустится и на 64-разрядной системе, правда с использованием встроенной в 64-разрядные редакции Windows подсистемы WoW64 (Windows on Windows 64-bit), позволяющей запускать такие приложения.
Итогом данного экскурса становится вывод: если у Вас установлена 32-разрядная система, Вы сможете запустить 32-разрядное приложение, но не сможете запустить 64-разрядное приложение. Если у Вас установлена 64-разрядная система, то Вы сможете запустить 64-разрядное приложение и в 99% случаев сможете запустить 32-разрядное приложение.
«Почему 99%?». Дело в том, что WoW64 хоть и практически всегда подходит для запуска 32-битных приложений в 64-битных системах, однако встречаются случаи индивидуальной несовместимости программы и подсистемы WoW64. Как правило, это затрагивает узкоспециализированное программное обеспечение или совсем старые игры. Обусловлено это специфически реализованными алгоритмами внутри программы или игры и отсутствием поддержки таких алгоритмов со стороны подсистемы WoW64.
Для того, чтобы узнать, какой разрядности у Вас установлена система, необходимо зайти в свойства компьютера. В Windows 10 это делается через приложение «Параметры», раздел «Система», подраздел «О программе». В графе «Тип системы» указано, какой разрядности ОС у Вас установлена, и какой разрядности процессор установлен в ПК.
В других версиях ОС (но и в Windows 10 также можно) можно узнать, нажав правой кнопкой мыши по пустому месту в окне «Мой компьютер», «Компьютер» или «Этот компьютер», после чего – «Свойства»:
Также данное окно можно открыть нажатием комбинации клавиш на клавиатуре: Windows+Pause/Break.
Узнать разрядность программы или игры можно, поискав данную информацию на сайте разработчика, на установочном носителе или в сторонник источниках в Интернете.
Так же стоит заметить, что совместимость совсем старых 16-битных и 8-битных приложений вовсе не предусмотрена в ОС Windows.
Что же делать, если произошла несовместимость разрядности? Вариант лишь один: использовать эмулятор или виртуальную машину с необходимыми параметрами. В данном случае на Вашем компьютере запустится ещё один, виртуальный компьютер. С большой долей вероятности это поможет Вам запустить необходимое приложение.
Несовместимость программы с версией ОС
Данный конфликт возникает в том случае, если программа или игра была создана для одной версии операционной системы, а попытка запуска происходит на другой версии ОС Windows. Например, игра или программа была выпущена под Windows XP или Windows 7, а попытка запуска происходит на Windows 8 или 10.
В данном случае можно попытаться запустить программу с помощью режима совместимости. Для этого нажмите правой кнопкой мыши на ярлык или исполняемый файл программы, после чего нажмите на «Свойства»:
Перейдите на вкладку «Совместимость», установите галочку на «Запустить программу в режиме совместимости с:», выберите в выпадающем списке необходимую версию Windows и нажмите «ОК». Попробуйте запустить программу.
В списке будут указаны версии Windows, выпущенные до той, которая установлена у Вас. То есть в Windows 7 список будет состоять из версий Windows 2000, Windows XP; в Windows 8 к ним добавится Windows Vista и 7. Так же и с Windows 10, однако она не поддерживает совместимость с Windows XP и более старыми версиями Windows.
Также стоит понимать, что чем старее версия, в режиме совместимости с которой Вы пытаетесь запустить приложение, тем меньше шанс, что данное приложение запустится.
В случае, если Вы попробовали несколько режимов совместимости, но это не привело к работоспособности необходимой программы или игры, можно попробовать запустить средство устранения проблем с совместимостью с помощью одноимённой кнопки на панели «Совместимость» в свойствах программы.
В случае, если это не помогло, остаётся лишь один вариант: виртуальная машина или эмулятор.
Ограничение доступа к компонентам, необходимым для запуска программы
Данный вариант часто встречается, если программа была установлена в режиме Администратора компьютера, но текущий запуск программы происходит с правами Пользователя. В таком случае программа просто не может получить доступа к данным, необходимым для её работы, так как операционная система не даёт их считывать или изменять.
В этом случае попробуйте нажать по необходимой программе правой кнопкой мыши, после чего нажать «Запуск от имени администратора»:
В случае появления окна Контроля учётных записей (User account control) с запросом: «Разрешить этому приложения вносить изменения на вашем устройстве?» – согласитесь, нажав кнопку «Да» и проверьте работу программы.
В случае, если программа запустилась и работает корректно, чтобы каждый раз не нажимать «Запуск от имени администратора», Вы можете перейти в свойства исполняемого файла (или ярлыка), раздел «Совместимость», и установить галочку на «Запускать эту программу от имени администратора», после чего нажать «ОК».
Повреждение необходимых для работы программы библиотек
Данная проблема является самой распространённой причиной возникновения ошибки 0xc000007b, поэтому рекомендуем уделить этому разделу как можно больше внимания.
Большинство программ, созданных для Windows, используют для своей работы три типа библиотек:
- Microsoft Visual C++
- DirectX
- Microsoft .NET Framework
Иногда, при установке других программ, эти библиотеки устанавливаются автоматически, при этом заменяя старые файлы уже установленных библиотек. Однако встречаются случаи, когда файлы этих библиотек в установочном пакете повреждены или были некорректно установлены. В этом случае лучшим решением будет их переустановка.
Перед переустановкой библиотек необходимо вручную удалить старые версии библиотек Visual C++ в Панели управления, далее «Программы и компоненты».
После удаления перезагрузите компьютер.
Далее необходимо зайти в папку C:\Windows
и с помощью поля поиска найти в данной папке и подпапке C:\Windows\SysWOW64
следующие файлы и удалить их, если имеются:
- msvcr*0.dll
- msvcp*0.dll
- d3dx9_42.dll
- D3DCompiler_42.dll
В первых двух файлах вместо звёздочки может быть числа от 1 и выше (до обозначения актуальной для данной ОС версии Visual C++), то есть «msvcr20.dll», «msvcr80.dll», «msvcr110.dll» и так далее.
Если файлы не удаляются из-за ошибки «Этот файл открыт в другой программе» – необходимо загрузить операционную систему в безопасном режиме, после чего удалить эти файлы.
Далее переходим к установке библиотек.
Microsoft Visual C++
Visual C++ можно скачать бесплатно с официального сайта Microsoft по этой ссылке:https://support.microsoft.com/ru-ru/topic/последние-поддерживаемые-версии-visual-c-для-скачивания-2647da03-1eea-4433-9aff-95f26a218cc0
Скачайте установочные файлы по ссылкам на странице и запустите их, после чего следуйте инструкциям установщика.
Также обратите внимание: для 32-разрядных систем необходимо устанавливать версии, имеющие в названии x86 или x32, а для 64-разрядных – обе версии: и x86/x32, и x64, так как 64-разрядные библиотеки используются для запуска 64-разрядных приложений, а 32-разрядные – для запуска 32-разрядных приложений с помощью подсистемы SysWOW64.
Установить все пакеты (включая старые, которые Microsoft перестал распространять в свободном доступе) разом можно, скачав пакет «All-in-one» от разработчика W1zzard из TechPowerUp:https://www.techpowerup.com/download/visual-c-redistributable-runtime-package-all-in-one/
Скачайте архив, обязательно распакуйте его и запустите от имени администратора файлinstall_all.bat
, после чего дождитесь появления в окне Командной строки сообщения «Installation completed successfully».
После установки перезагрузите компьютер.DirectX можно скачать с страницы на официальном сайте Microsoft:
https://www.microsoft.com/ru-ru/download/details.aspx?id=35
Данный вариант актуален для систем Windows 7 и более старых версий, но этот пакет можно установить и на Windows 10, не дожидаясь его автоматической установки с обновлениями.
Помимо этого, Windows 8 и старше автоматически устанавливают и обновляют DirectX при обновлении операционной системы. Чтобы проверить актуальность обновлений системы, в том числе DirectX, перейдите в приложение «Параметры», далее «Обновление и безопасность», далее «Центр обновления Windows», после чего нажмите на кнопку «Проверить наличие обновлений». В случае, если обновления будут найдены, начнётся скачивание и фоновая установка обновлений.
Так же обновления могут быть в том же окне, в разделе «Доступно необязательное исправление». В случае, если такие обновления есть, нажмите «Загрузить и установить».Microsoft .NET Framework
Скачать Microsoft .NET Framework можно из раздела DotNet официального сайта Microsoft:https://dotnet.microsoft.com/download/dotnet-framework
На данной странице выберите версию, которую хотите скачать, и перейдите на страницу выбора типа скачиваемого файла. Выбирайте версии из столбца «Run apps – Runtime». В строке «Web installer» указывается ссылка на файл, который автоматически скачает версию подходящей локализации. В строке «Offline installer» указывается ссылка на установочные пакеты, который впоследствии можно будет использовать для установки данной версии .NET Framework без доступа к Интернету. В строке «Language packs» указываются ссылки на установочные пакеты с конкретной локализацией установщика.
Обратите внимание: скачивать нужно все доступные версии, так как неизвестно, на какой из версий .NET Framework создана необходимая Вам программа.
Узнать о совместимости версий .NET Framework и версий операционных систем можно по ссылке:https://docs.microsoft.com/ru-ru/dotnet/framework/migration-guide/versions-and-dependencies
Также, если Вы устанавливаете старое приложение или игру, стоит уделить внимание версиям 2.0-3.5. В Windows 10 эти версии .NET Framework уже встроены, но отключены. Чтобы включить их, перейдите в Панель управления, далее «Программы и компоненты», далее «Включение или отключение компонентов Windows», найдите в списке «.NET Framework 3.5 (включает .NET 2.0 и 3.0)», установите галочку на этом пункте и нажмите «ОК», после чего дождитесь завершения установки компонента.
Повреждение файлов программы или игры
Виновником ошибки 0xc000007b может быть и повреждённые или недостающие файлы программы или игры. Вариантов, как могли повредиться файлы, много:
- Ошибка при создании дистрибутива (относится, по большей части, к файлам, распространяемым через Torrent)
- Ошибки в процессе скачивания файла установки или ошибки чтения файлов с устройства хранения данных (например, в случае повреждения CD/DVD-диска)
- Отмена установки программы, из-за чего часть файлов не распаковалась в необходимые каталоги
- Ошибка в процессе установки
- Недостаток прав для правильной установки
- Некорректное обновление или ошибка установки обновления приложения
- Подмена файлов нежелательным программным обеспечением или ручная подмена файлов, например, при активации нелицензионной копии программы
- Ошибка сохранения и последующего чтения данных в процессе работы программы из-за ошибки в алгоритме работы программы
- Аппаратная ошибка
В любом случае, первым делом необходимо переустановить нерабочую программу/игру и попробовать запустить её снова. Кроме того, хорошим вариантом будет получение файла установки из другого источника (например, попробовать другой диск или скачать файл установки с другого сайта). Если Вы скачиваете программу с сайта разработчика, попробуйте скачать чуть более старую версию из архива версий – возможно, эта ошибка возникает только в новой версии.
В случае, если переустановка не помогла, рекомендуем проверить аппаратное обеспечение на корректность работы. В частности, рекомендуем проверить работу жёсткого диска/SSD (например, тестами через Victoria или MHDD) и работу оперативной памяти (встроенной утилитой «Средство устранения неполадок оперативной памяти»/«Средство проверки памяти Windows» или MemTest).
Повреждение файлов операционной системы
Со временем, работа операционной системы становится нестабильной из-за накопления ошибок в её работе. Это так же может являться причиной появления ошибки 0xc000007b. Для того, чтобы проверить систему на наличие ошибок и устранить их, необходимо открыть Командную строку от имени администратора. Самый простой способ сделать это в Windows 10:
- Откройте Диспетчер задач
- Нажмите «Файл»
- Нажмите «Запустить новую задачу»
- В открывшемся окне «Создание задачи», в поле «Открыть» введите «cmd»
- Поставьте галочку «Создать задачу с правами администратора»
- Нажмите «ОК»
После запуска командной строки введите следующие команды:
sfc /scannow
Данная команда проверяет целостность системных файлов и заменяет повреждённые файлыdism /online /cleanup-image /restorehealth
Данная команда проверяет целостность компонентов системыchkdsk %systemdrive% /f /r
Данная команда проверит системный раздел на наличие ошибок. После ввода команды подтвердите проверку диска при следующем запуске системы вводом буквы «Y» и нажатием Enter, после чего перезагрузите компьютер.
Либо введите следующую команду и дождитесь перезагрузки ПК:sfc /scannow & dism /online /cleanup-image /restorehealth & echo y | chkdsk %systemdrive% /f /r & shutdown /r /f /t 5
Ограничение запуска антивирусным программным обеспечением
Так как выбор антивирусного программного обеспечения весьма обширен, а базы сигнатур вирусов у каждого антивируса немного отличаются, может случиться так, что антивирус, установленный на Вашем компьютере, ошибочно блокирует запуск или чтение файла, необходимого для запуска программы, принимая его за потенциально опасный.
Обычно в данном случае антивирус сигнализирует о том, что нашёл угрозу, и в интерфейсе антивируса можно увидеть, какой именно файл ему не понравился. Рекомендуем проверить данный файл с помощью бесплатного сервиса https://www.virustotal.com, и в случае, если данный файл помечен как вирус только при проверке одним антивирусом (что скорее всего означает ошибочное срабатывание), можно добавить файл в исключения антивируса и попытаться запустить программу вновь.
Однако может случиться и такое, что антивирус блокирует файл скрыто, без показа каких-либо уведомлений. В данном случае можно временно отключить все функции антивируса и проверить, не он ли является виной появления ошибки.
Также обратите внимание: если у Вас установлена Windows 10 и Вы не устанавливали стороннее антивирусное ПО, то по умолчанию в Вашей системе включен «Защитник Windows» – встроенный антивирус от Microsoft. Чтобы перейти в его настройки, запустите приложение «Параметры», далее «Обновление и безопасность», далее «Безопасность Windows» и нажмите на кнопку «Открыть службу “Безопасность Windows”».
Повреждение файлов драйверов
Следующая часто встречающаяся проблема – проблема с файлами драйверов или их несовместимость с запускаемой программой. В подавляющем большинстве случаев ошибка 0xc000007b при запуске игр возникает из-за ошибок драйвера видеокарты. Основных причин проблем с драйвером видеокарты две:
- Повреждение файлов драйверов в процессе эксплуатации компьютера
При установке драйвера на видеоадаптер, установщик вносит определённые изменения в работу системы. В будущем другие программы или обновления ОС могут видоизменить внесённые установщиком изменения, из-за чего некоторые программы могут некорректно работать с данными изменениями. - Несовместимость драйвера и запускаемой программы
Бывает и такое, что определённая программа корректно работает только с новыми версиями драйвера, и может выдавать ошибку 0xc000007b при попытке запуска программы с устаревшим драйвером. А бывает и наоборот: например, старая игра может запуститься на версии драйвера до какой-то определённой устаревшей версии, но не может запуститься на новой версии драйвера.
Обусловлено это тем, что из версии в версию алгоритмы работы драйвера меняются и оптимизируются. Некоторые функции удаляют как устаревшие, а новые функции добавляют.
В данном случае мы рекомендуем:
- Обновить драйвер видеоадаптера
- Драйверы видеокарт Nvidia обновляются через программу Geforce Experience, которая устанавливается при первой установке драйвера видеокарты.
Также драйвер можно скачать и установить в ручном режиме с официального сайта Nvidia: https://www.nvidia.ru/Download/index.aspx?lang=ru - Драйверы видеокарт AMD/ATI обновляются через программу AMD Radeon Settings, которая также устанавливается при первой установке драйвера видеокарты.
И так же драйвер можно взять на официальном сайте AMD: https://www.amd.com/ru/support - Драйвер на встроенную в процессор (APU) графику Intel можно скачать с официального сайта Intel: https://www.intel.ru/content/www/ru/ru/support/articles/000005629/graphics.html
- Драйвер на встроенную в процессор (APU) графику AMD можно скачать с официального сайта AMD: https://www.amd.com/ru/support
- Драйверы видеокарт Nvidia обновляются через программу Geforce Experience, которая устанавливается при первой установке драйвера видеокарты.
- В случае, если обновление завершилось неудачно или обновление не помогло, попробуйте выполнить чистую установку драйвера, предварительно удалив старую версию драйвера.
Если ошибка 0xc000007b возникает при попытке запуска старой игры, обновление может не помочь, так как может быть нужен именно старый драйвер видеокарты. Для этого необходимо найти информацию, какая последняя версия драйвера видеокарты поддерживается конкретной игрой, после чего в архиве на сайте производителя видеоадаптера найти подходящую версию и установить её, предварительно удалив более новую версию драйвера.
В случае, если обновление (или откат) драйвера видеоадаптера не помог, рекомендуем обновить все драйверы. Скачать их можно с сайта производителя оборудования или установить пакетными установщиками драйверов (Driver Booster, DriverHub, DriverPack, Driver Genius и подобные).
Диагностика ошибки программой Dependency Walker
Как показывает практика, в большинстве случаев данная ошибка возникает тогда, когда определённый файл из библиотеки, необходимой для запуска, повреждён или отсутствует. Для определения, какой именно файл мешает запуску программы с ошибкой 0xc000007b, нам поможет программа Dependency Walker. Скачать её можно здесь: https://www.dependencywalker.com. Необходимо скачать файл для той разрядности системы, которая установлена у Вас.
- Распакуйте скачанный архив в любое место и запустите файл
depends.exe
. - В открывшемся окне программы нажмите «File», далее «Open»
- Выберите исполняемый файл или ярлык на исполняемый файл программы, при запуске которой возникает ошибка 0xc000007b
- Подождите инициализации исполняемого файла
- При появлении ошибки проигнорируйте её и нажмите «ОК»
- Нам необходима следующая часть интерфейса программы, в которой отображаются загружаемые модули:
Ошибки файлов, имена которых начинаются на API- и EXT- можно игнорировать.
Обратите внимание на столбец «CPU»: в нашем случае, у файла MSVCR100.dll значение «x86» окрашено в красный. Это означает, что в каталоге находится файл неподходящей разрядности, он загружается, но не может быть использован для работы.
В Вашем случае проблемным файлом может оказаться любой иной файл: смотрите в список загружаемых модулей и ищите проблемные значения. - Нажмите на клавиатуре F9 для показа полных путей к файлам, чтобы знать, где именно лежит повреждённый файл.
- Далее необходимо найти в Интернете подходящий файл и заменить им повреждённый, после чего перезагрузить компьютер и попытаться запустить программу вновь.
Стоит сразу внести несколько пояснений:
- Файлы, имена которых начинаются на MSVC
Данные файлы принадлежат к библиотекам пакетов Microsoft Visual C++. Узнать, к какой версии Visual C++ относится конкретный файл можно, перейдя в свойства данного файла (ПКМ - Properties), в раздел «Подробно» - Файлы, имена которых начинаются на DX
Чаще всего данные файлы относятся к DirectX. Загрузка обновления DirectX может решить проблему. - В случае, если у Вас установлена 64-разрядная система, то проблемный файл в каталоге
C:\Windows
будет означать, что Вам необходимо устанавливать 64-разрядный дистрибутив программы. Если же указан каталогC:\Windows\SysWOW64
– устанавливать следует 32-разрядный дистрибутив. А для верности лучше переустановить оба.
- Комментарии