I have been trying to resolve .dll dependencies for the executable file with Dependency Walker. Currently, I am getting missing .dlls in the following form:
API-MS-WIN-XXX
EXT-MS-WIN-XXX
For example:
API-MS-WIN-APPMODEL-IDENTITY-L1-2-0.DLL
API-MS-WIN-APPMODEL-RUNTIME-INTERNAL-L1-1-0.DLL
API-MS-WIN-BASE-UTIL-L1-1-0.DLL
API-MS-WIN-CORE-APIQUERY-L1-1-0.DLL
EXT-MS-WIN-RTCORE-NTUSER-SYSCOLORS-L1-1-0.DLL
Does anybody have any ideas on how to resolve these?
Any help will be greatly appreciated!
Additional info: I compiled the executable using Visual Studio 2013. The most interesting thing is that I did not receive any errors during compilation. However, I cannot run it due to missing dependencies. I also attached a screenshot of dependency walker:
Update 1: As an attempt to solve the problem I tried to add the path for the libraries that VS used during compilation to the $PATH environment variable without any luck (Dependency Walker still shows unresolved dependencies).
0xc000007b is one of many well-known runtime error codes. You can check out other error codes and their more user friendly descriptions here:
Link
Someone may correct or elaborate on this point but if we see code 0xc000007b, we are being told that a binary we tried use is either corrupt or not intended to be run in our process. That description is intended to be vague because this error code can cover a large number of situations. I would argue that there are no one-size-fits-all solutions to this problem but I will share ideas on how to track down the root cause of this issue. The root cause could vary from user to user and a case-by-case solution will be needed.
Why am I seeing this code?
The short answer is that I won’t know until I get more info from you. Often times, this error code is caused by a 64-bit process trying to use a 32-bit dll or vice versa. In our case, the 64-bit Launcher is probably trying to load a .dll that it wasn’t meant to run with. The problem is that this isn’t the only situation that could cause this error code. It could be a subtle problem with any of the binaries used/referenced. I’m not clear on all the ways users can get into this state but usually it has to do with dependencies that are corrupt, modified, incorrectly installed, or that have been tampered with. I’ll be sure to update my answer if/when I find out more.
How can I pinpoint the problem?
Some users have had luck uninstalling and then reinstalling some of the well-known dependencies(directx, VCRedist, etc). This is a hit or miss solution because we can’t be sure which of those dependencies, if any, is causing the problem without investigating further. This is a valid approach to the problem and you may get lucky but if you want to know more about the root cause of this problem we’ll need some tools:
Dependency Walker 2.2 x64
is a very useful tool for troubleshooting system errors related to loading and executing modules and we’ll use it here to see what module is causing our 0xc000007b error. There are many ways of using dependency walker to pinpoint the problem and you could experiment with the tool(be sure to check out the depends.chm documentation that is packaged with it). Note: If you are having difficulty viewing the documentation, you may need to Unblock it in the properties (right click depends.chm -> Properties -> General Tab -> Unblock). Below I run you through an example of using Dependency Walker on my Unreal Engine Launcher.
Using Dependency Walker
Here I intend to give you an overview of one of the ways you could use Dependency Walker to pinpoint the module that is causing issues. I had to tamper with one of my System Dlls to artificially reproduce the problem so your log files will be different but you’ll be generating and reading the logs in a similar way on your computer.
-
Download Dependency Walker 2.2 x64 from here:
Link
-
Extract
depends22_x64.zip
to
C:\DWalker
- Open a command window as administrator (Start Menu -> type “cmd” in the search box and right click on cmd.exe and select Run as Administrator)
- Enter the following command to switch to the folder we extracted Dependency Walker to: cd C:\DWalker
-
Enter the following command to have the tool generate logs while running Unreal Engine Launcher(Note: I have my Unreal engine installed to the default location, you would replace c:\Program Files\Unreal Engine in the command below with your install location):
depends.exe /c /f:1 /pb /pp:1 /pg:1 /ot:Log.txt "c:\Program Files\Unreal Engine\Launcher\Engine\Binaries\Win64\UnrealEngineLauncher.exe"
- This will run Unreal Engine Launcher and you’ll see the familiar 0xc000007b error message. Click OK to dismiss it as usual.
- You should now have a Log.txt file in the C:\DWalker folder. In the next section I’ll go over what to look for in this log to pinpoint the problem module.
Reading Dependency Walker Logs
If you followed the steps above, you should have a Log.txt file in your c:\DWalker folder. Open the log in a text editor and have a look. If you are anything like me, and seeing one of these logs for the first time, the contents of the log may make your head spin. Use the points below as a guide when searching for errors. I’ll update this section whenever I find a different fail case. Note: Don’t get hung up on every little warning/error you spot in the log, Dependency Walker may generate many warnings and errors for an application but most of these will be harmless and can be ignored. If you feel comfortable doing so, I would encourage you to share your log so that we can spot any common issues and hopefully find a way to get them fixed up in future releases.
Search the log for the strings in bold:
-
Error: Modules with different CPU types were found
. This means the 64 bit process was given a 32 bit module. To pinpoint the module having the problem, look through the list of DLLs before the error appeared and find the one with the [ E ]. Here is an example of my xinput dll having issues loading:
[ E ] c:\windows\system32\XINPUT1_3.DLL
-
Error: At least one file was not a 32-bit or 64-bit Windows module
. This means a DLL is probably corrupt. To pinpoint the module having the problem, look through the list of DLLs before the error appeared and find the one with the [ ! ]. Here is an example of my xinput dll which is corrupt:
[ ! ] c:\windows\system32\XINPUT1_3.DLL
-
At least one module was corrupted or unrecognizable to Dependency Walker, but still appeared to be a Windows module
. This means a module was invalid. To pinpoint the module(s) having the problem, look through the list of DLLs before the warning appeared and find any with [ ! ] or [ !6]. Here is an example of a module that has this issue:
[ !6] c:\windows\system32\D3DCOMPILER_43.DLL
What do I do once I pinpoint the problem?
First we’ll need to pinpoint the product the DLL is associated with and try to reinstall/repair that product. In my case, above, XINPUT1_3.dll is part of DirectX so I would download DirectX from a trusted Microsoft site and reinstall it. If the same issue shows up in the logs after I do that I would get more aggressive with my reinstall: I would backup my copy of the .dll, delete the original, try to reinstall again, and check to make sure a new copy of the dll was put in place. Note: Some people suggest to download DLLs from various websites but I want to caution you about this: I would personally never never never never… never use an untrusted site to download .dlls from. In other words,
do not use untrusted sites to download DLLs
.
I want to profile Excel in Dependcy walker but I get an error in when I try to load Excel.exe.
I am a little confused if I should use dependcy walker x86 or x64 versions. So I ran both.
Dependency walker x64 tells me:
Error: At least one module has an unresolved import due to a missing export function in an implicitly dependent module.
Error: Modules with different CPU types where found
Dependency walker x86 tells me:
GPSVC.DLL, Error opening file. The System cannot find the file specified (2).
Warning: At least one delay-load dependency module was not found.
Warning: At least one module has an unresolved import due to a missing export function in an implicitly dependent module.
Trying to open c:\windows\system32\GPSVC.DLL in dependency walker x86 it does not even see the file! (must be because if is from x64)
Opening c:\windows\system32\GPSVC.DLL in dependency walker x64 comes with an error.
Error: Modules with different CPU types where found
And IESHIMS.DLL is shown as an x86 dll
I am using Windows 7 x64, Office 2007 x86 SP2, internet explorer 8
I have a missing dll on a system. I have the following message:
Could not load file or assembly ‘mydll.dll’ or one of its dependencies.
Of course, ‘mydll’ is present there, it most probably is another dll on which it depends. I downloaded dependency walker to check what it could be. I have first tested it in another system, where the application has no problems. But if I open mydll.dll with dependency walker on the system where my application does work, it reports eight dlls that should be missing. So I would assume these dlls have nothing to do with the problem, but can somebody please confirm that, and explain why they are reported? Is it normal that these dlls are reported as missing, and can I consider the messages as a ‘false positive’?
These are the files reported as ‘missing’, while my application does work on thát system:
-
API-MS-WIN-APPMODEL-RUNTIME-L1-1-0.DLL
-
API-MS-WIN-CORE-WINRT-ERROR-L1-1-0.DLL
-
API-MS-WIN-CORE-WINRT-L1-1-0.DLL
-
API-MS-WIN-CORE-WINRT-ROBUFFER-L1-1-0.DLL
-
API-MS-WIN-CORE-WINRT-STRING-L1-1-0.DLL
-
API-MS-WIN-SHCORE-SCALING-L1-1-1.DLL
-
DCOMP.DLL
-
IESHIMS.DLL
Краткая аннотация
В подавляющем большинстве случаев, причиной появления ошибки 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-разрядный дистрибутив. А для верности лучше переустановить оба.