Topic: what is Erro Code 0xc000007b ? (Read 6725 times)
Hi all,
I wrote a application on win7/32bit system. It works well. Then I copied the source files to a win7/64bit system and compiled it to run. But after it’s smooth compling and linking, the application did not run. A dialog showed to say «Application can not run (0xc000007b), please click «ok» to close it».
I checked the project configuration and the «Target OS», «Target CPU Familiy» are both «Default». And I can see a folder named «lib\x86-64-win64» was created automatically under my source file folder. Everything looks normal, but the application didn’t run, even when I double click the generated .exe file.
How to solve this problem?
Roy
Logged
I use Win10 + Lazarus 2.2.0 + FPC 3.2.2. All 64bit.
Usually this means you should run the application with elevated rights, e.g. administrator. At least that’s where I encountered it the most.
Plz report back if that works. In such a case you can add a manifest resource to your application with the requested rights, so you don’t need to run it as administrator explicitly.
There are more causes, though:
1. This error occurs due to lack of some system or program files that include DDL files.
2. It also occurs when the file could be damaged, to run the application or the software that can’t start correctly.
3. At the same time, it may also happen due to virus infection, registry errors, etc.
4. There are chances to see this type of errors 0xc000007b error while you are not running the software as administrator.
5. Outdated Microsoft .NET Framework or Microsoft Visual C++ is one of the reasons to cause this type of error.
6. Even when you migrate from Windows 7 to Windows 8, 8.1 or Windows 10, then you see this error when launching the old applications.
7. However, there is also another reason that may cause this Error Code 0xc000007b that include interrupted installation of updates, the incorrect shutdown of the computer, as well as deletion of the program directly from the installation folder.
8. Wrong dll version, although that usually comes with a more descriptive error.
9. Sometimes by this error codes effect may differ from one app to other and hence, it may block access to apps like Skype, Messenger, Microsoft Office package and even any game.
« Last Edit: July 30, 2019, 07:47:13 am by Thaddy »
Logged
I actually get compliments for being rude… (well, Dutch, but that is the same)
It seems not related to the administrator right, but something related to a 32bit dll file I used in the application. I do not have a 64 bit version or the source file of that dll file (writen in C language). Any solution?
Logged
I use Win10 + Lazarus 2.2.0 + FPC 3.2.2. All 64bit.
I edited my answer above to describe all possible causes.
Note you can not use a 32 bit dll with 64 bit applications (without thunking, that is), but I expect you already understood that.
OTOH this «lib\x86-64-win64» suggests you compiled for 64 bit. You should compile for 32 bit. (Isn’t it «lib\x86_64-win64» ? note the underscore)
« Last Edit: July 30, 2019, 07:54:40 am by Thaddy »
Logged
I actually get compliments for being rude… (well, Dutch, but that is the same)
It seems not related to the administrator right, but something related to a 32bit dll file I used in the application. I do not have a 64 bit version or the source file of that dll file (writen in C language). Any solution?
From MSDN
0xC000007B
STATUS_INVALID_IMAGE_FORMAT
{Bad Image} %hs is either not designed to run on Windows or it contains an error. Try installing the program again using the original installation media or contact your system administrator or the software vendor for support.
There is probably a setting incompatible with another one that causes the compiler to produce an executable the Windows loader will not load.
From the description you provided in your original post, the likely contradictory setting is the «Target Processor», change that to «default» as well, recompile and try again.
ETA:
Another possibility is that your 64bit program is trying to load a 32bit dll (the dll you mention is written in C), in that case, just make sure the dll being loaded matches the bitness of your executable.
Also, you are correct that, that error has nothing to do with elevated rights or administrator rights.
« Last Edit: July 30, 2019, 08:02:58 am by 440bx »
Logged
FPC v3.0.4 and Lazarus 1.8.2 on Windows 7 SP1 64bit.
« Last Edit: July 30, 2019, 08:31:16 am by Thaddy »
Logged
I actually get compliments for being rude… (well, Dutch, but that is the same)
It can be caused if the image or one of the components used (dll, ocx) has insufficient rights to run. That would make it an invalid image for user mode context.
Do you have an article from a credible source to support that statement ? … if you do, I’d like to read it.
Logged
FPC v3.0.4 and Lazarus 1.8.2 on Windows 7 SP1 64bit.
« Last Edit: July 30, 2019, 08:44:42 am by Thaddy »
Logged
I actually get compliments for being rude… (well, Dutch, but that is the same)
I do have to give you credit for providing some links that support what you stated.
Logged
FPC v3.0.4 and Lazarus 1.8.2 on Windows 7 SP1 64bit.
Found this when searching for an explanation to the erroir code I am getting when building then running the examples from this github IPC project, which uses a unit provided with FPC itself.
I have started a thread on using IPC communication on this forum. The replies steered me to the GitHub project linked above.
So I retrieved the project and built its target dll and then the demo-lazarus projects with a simple client and a server.
All using Lazarus 2.2.4/Fpc 3.2.2 on Windows 10 x64.
No matter what I do I get the error 0xc000007b when I try to start the server but not the client, both using the same dll compiled as step 1.
I wonder if there was a solution to this problem found in this thread?
Logged
—
Bo Berglund
Sweden
No matter what I do I get the error 0xc000007b when I try to start the server but not the client, both using the same dll compiled as step 1.
I wonder if there was a solution to this problem found in this thread?
You implicity gave the answer yourself: rights, security. A client needs less rights, a server needs more rights.
Simple.
Also, a server needs to be up to date, a client may lag behind.
Protocols.
Came to mind a really stupid question this week, which got really nice — patient — answer.
( I will ask Remy to drop anything below TLS 1.2 anyway. I have no patience)
« Last Edit: March 31, 2023, 06:25:35 pm by Thaddy »
Logged
I actually get compliments for being rude… (well, Dutch, but that is the same)
The main problem, of course, is that a DLL file is missing, or, even more likely, corrupt. If this is the case, then I have some pretty good ideas (especially if you’ve downloaded and installed a DLL manually!)…
TLDR: Delete every manually copy/pasted DLL you’ve done, uninstall old redistributable installs, and reinstall new redistributables for both 32-bit and 64-bit installs.
What To Do
This solution of copying/pasting missing DLL’s into system32
, etc., used to work since I can remember in the 1990’s, but it doesn’t seem to work anymore (2020). So if you run into this problem recently, I suggest:
- Within
windows\system32
andwindows\SysWOW64
, delete all files that matchms*.dll
, that the operating system will allow you delete as admin. - Uninstall all Visual C++ Redistributables that you have with Windows. This prevents the «You already have this!» dialogue showing up upon reinstall, as detailed in the next step when we re-install.
- Reinstall the 2015-2019 Visual C++ Redistributable from a regularly available download site. If this does not work, download and install the others, but personally, the 2015-2019 covered everything for me. Regardless of your machine, install both x32 and x64 packages! (All Download Links: Collected VC++ Download Links; MSVCR120.dll Fix; MFC140U.dll Fix.)
How You Know It’s Working
There’s a lot of variation in coders experiencing this, so, the idea that there’s one single, possible solution is often discarded, but let’s be positive!
- If deleting the matching
ms*.dll
files worked, then you will no longer get an error abouterror code 0xc000007b
. Instead, you’ll get a message about a missing.dll
. This tells you that you’re hitting the right code path! - If installing the redistributable works, then certain popular, DLL files should appear in the above-mentioned
system32
andSysWO64
folders. For instance:MSVCR120.dll
,MSVCR140.dll
,MSVCR100.dll
,MSVCP100.dll
,MSVCP120.dll
,MSVCP140.dll
, and friends.
Last, Possible Best Chances
Sometimes things don’t work according to plan (as we all in the Windows world know). You can also try the following!
- Open the «Turn Windows Features on or off» tab in Windows (supported in Windows 8-10). Uncheck the
.NET Framework
installations. You’ll see a small installation go by. - Restart the system. Go to the above feature again, recheck
.NET Framework
, and click «okay». If this works, you’ll see a «installing and updating .NET framework» message that takes maybe a minute or so to go by. Once this is done, I recommend a reboot again.
Good luck!
Краткая аннотация
В подавляющем большинстве случаев, причиной появления ошибки 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-разрядный дистрибутив. А для верности лучше переустановить оба.
Ошибка 0xc000007b в Windows означает, что приложение не смогло запуститься из-за некоторых проблем с библиотеками, которые он требует для корректной работы.
Эта ошибка может возникать по нескольким причинам, включая:
- Неполадки в системных файлах, затребованных приложением.
- Несовместимость между версией Windows и приложением.
- Недостаток прав доступа к файлам для приложения.
- Неправильно установленные драйверы устройств.
Способы устранения ошибки 0xc000007b в Windows варьируются в зависимости от ее причины. Ниже приведены несколько наиболее распространенных методов.
Приведём наиболее простые и доступные для любого пользователя способы устранения рассматриваемой ошибки.
Проверка наличия обновления системных файлов
Чтобы проверить, имеются ли обновления для вашей версии Windows 10, следует:
- Нажать “Пуск” и выбрать “Настройки” (шестерёнка).
- Выбрать “Обновление и безопасность”.
- Нажать “Проверить наличие обновлений”.
- Windows 10 проверит возможность обновления и при наличии таковой, сам скачает и установит требуемые файлы.
- После завершения установки обновлений, перезагрузить компьютер, изменения вступят в силу.
Запуск исполняемого файла в режиме совместимости
Для запуска исполняемого файла в режиме совместимости с ранней редакцией Windows, необходимо:
- Нажать правой кнопкой на файле и выбрать раздел “Свойства”.
- В новом окне перейти на вкладку “Совместимость”.
- В разделе “Режим совместимости” отметить пункт “Запустить программу в режиме совместимости” и выбрать необходимую версию ОС Windows из выпадающего списка.
- Нажать “Применить” и затем “ОК”.
- Запустить приложение.
Теперь приложение будет запущено в режиме совместимости с выбранной редакцией Windows. Обычно этого достаточно для решения проблем совместимости с ранними версиями ОС.
Проверка прав доступа для приложения
Существует несколько способов проверить права доступа для приложения:
- Использование утилиты командной строки ls для просмотра свойств файлов. Например, чтобы просмотреть права доступа к файлу sample.txt, следует выполнить команду: ls -l sample.txt. Результатом будет список прав доступа к файлу.
- Графический интерфейс файлового менеджера. Следует открыть файловый менеджер и найти требуемый файл. Щелкнуть по нему правой кнопкой и выбрать “Свойства” или “Информация о файле”. В новом окне будет указаны текущие права доступа.
- Ошибка 0xc000007b может быть устранена с помощью специального приложения для администрирования прав доступа, такого как ACL Tools или FileZilla. Эти приложения позволяют просмотреть и изменить права доступа не только для отдельных файлов, но и для целых папок и директорий.
- Разработчики приложений могут проверить права доступа программно, используя системный вызов. В Windows 10 для этого используется функция GetFileSecurity().
Хит!
790,0 ₽
Хит!
850,0 ₽
Скидка -86%Хит!
850,0 ₽
Скидка -88%Хит!
900,0 ₽
Обновление драйверов
Драйверы можно обновить следующим образом:
- Использовать утилиту Windows Update: Она автоматически проверит, нужны ли системе какие-либо обновления, и предоставит возможность их установить.
- Использовать официальные сайты изготовителей устройств. Они, часто предлагают свои собственные утилиты обновления драйверов своих устройств. Их можно скачать бесплатно и использовать для обновления.
- Использовать сторонние утилиты и онлайн сервисы. Существует множество сторонних программ и сервисов, которые могут помочь обновить драйверы. Большинство из них бесплатны, но есть и платные. Как правило, хорошие результаты даёт обновление с помощью бесплатного онлайн сервиса SamLab.
Независимо от способа, выбранного для устранения ошибки 0xc000007b, перед началом работ рекомендуется создать точку восстановления системы, если вдруг что-то пойдет не так.
- Причины возникновения ошибки 0xc000007b
- Устранение ошибки 0xc000007b
- Заключение
Запуск приложений на Windows 11 может сопровождаться возникновением ошибки с кодом 0xc000007b. При этом появляется окно со следующей надписью: «Ошибка при запуске приложения (0xc000007b). Для выхода из приложения нажмите кнопку OK». Так как название ошибки для рядового пользователя ничего не значит, определить корень проблемы сложно.
Причины возникновения ошибки 0xc000007b
Причинами возникновения проблемы могут стать:
- Несоответствующий уровень привилегий.
- Поврежденные файлы библиотек.
- Неполадки совместимости.
- Старая версия операционной системы.
- Повреждение файлов приложения или системы.
- Работа антивируса.
Источников возникновения ошибки достаточно много, но какой бы ни была причина, проблему можно легко исправить самостоятельно.
Устранение ошибки 0xc000007b
Чтобы исправить ошибку 0xc000007b, нужно определить причину, по которой она возникла. Первое, на что стоит обратить внимание, — в каком режиме запускается приложение.
Для работы некоторых программ могут потребоваться права администратора. Для запуска в режиме администратора нужно нажать правой кнопкой мыши по иконке приложения и выбрать Запустить от имени администратора. Если это не помогло, виноват может быть антивирус.
Антивирус
Антивирусное ПО может блокировать доступ к некоторым приложениям, если посчитает их вредоносными. Чтобы запустить нужную программу, достаточно отключить антивирус или добавить запускаемый файл в исключения. Но помните, что в таком случае нужно быть предельно осторожным, так как причина срабатывания защитного ПО может быть не безосновательна.
Неполадки совместимости
Та же ситуация может возникнуть, если приложение и ОС несовместимы. Для решения проблемы нужно нажать правой кнопкой мыши по ярлыку, выбрать Свойства, затем Совместимость и в открывшемся окне поставить галочку напротив пункта Запустить программу в режиме совместимости и выбрать нужную ОС.
Несовместимы приложение и ОС будут еще и в том случае, если у них разные разрядности. Убедитесь, что разрядность установленной программы совпадает с разрядностью вашей системы. Узнать разрядность своей ОС можно, нажав на Пуск и выбрав Параметры. В открывшемся окне нужно выбрать пункт Система и его подпункт О системе. В строке Тип системы указана разрядность.
Старая версия операционной системы
Старая ОС также может стать причиной возникновения ошибки.
Чтобы обновить систему или убедиться в том, что у вас последняя версия, нужно нажать сочетание клавиш Win + I (английская буква «i»), выбрать Центр обновления Windows, в подразделе Обновления Windows нажать кнопку Проверить обновления и, если новая версия была найдена, выбрать нажать Загрузить и установить.
Microsoft Visual C++
Компонент Visual C++ служит для работы приложений, основанных на Microsoft C и C++. К таким можно отнести игры на Windows, так как при их разработке нередко используется среда разработки Microsoft Visual C++.
Если же такая библиотека уже установлена, а приложение все еще не запускается, выдавая ту же ошибку, причина может быть в версии библиотеки. Связано это с тем, что программы для своей работы используют конкретные версии библиотеки. По этой же причине на ПК должны быть установлены как самая последняя версия, так и предыдущие.
Чтобы избавиться от ошибки, нужно установить все версии библиотеки. Скачать их можно на сайте Microsoft. Рассмотрим, как это сделать, на примере последней версии:
- Перейти на официальный сайт и выбрать нужную версию и нужную архитектуру (x64 – 64-разрядная система, x86 – 32-разрядная система). Также можно скачать готовый пакет на нашем сайте.
- Открыть загруженный файл, согласиться с условиями лицензии и нажать кнопку Принять.
- Дождаться окончания установки.
Аналогичную процедуру нужно провести с остальными версиями библиотеки.
DirectX
DirectX — набор API для решения задач, связанных с программированием на Microsoft Windows. Был создан с целью расширения возможностей разработчиков при работе с клавиатурой, мышью и геймпадом. Чаще всего используется при разработке игр.
Установка компонента простая:
- Скачать последнюю версию с официального сайта.
- Принять условия лицензионного соглашения и нажать Далее.
- Нажать Далее в следующем окне и дождаться окончания установки, затем выбрать Готово.
Если возникли проблемы с установкой новых версий, установите предыдущую. Разные операционные системы поддерживают DirectX до определенной версии.
.NET Framework
Microsoft .NET Framework — набор библиотек и компонентов, предназначенных для работы с приложениями на базе .NET Framework.
Некоторые программы могут работать на основе старых версий .NET. Они входят в компоненты Windows, однако в Windows 11 .NET Framework 3.5 по умолчанию отключен. Чтобы его включить, нужно:
1. Сочетанием клавиш Win + R вызвать окно запуска и ввести в него строку optionalfeatures
2. В открывшемся окне установить флажок напротив .NET Framework 3.5 и нажать ОК.
3. Разрешите Windows скачать необходимые файлы из Центра обновлений.
4. Дождитесь окончания установки компонентов.
Повреждение файлов
Если предыдущие методы не помогли, нужно проверить целостность файлов приложения и системы. Для полной уверенности в том, что с приложением все в порядке, его нужно переустановить, используя лицензионную версию программы.
Для проверки и восстановления файлов системы можно воспользоваться встроенными инструментами SFC и DSIM. Чтобы запустить их, сделайте следующее:
1. В строке поиска Windows введите cmd и, нажав правой кнопкой мыши, запустите командную строку от имени администратора.
2. Введите команду sfc/scannow и нажмите Enter. Дождитесь окончания проверки.
3. После завершения сканирования перезагрузите компьютер и снова откройте консоль. Теперь введите команду DISM /Online /Cleanup-Image /RestoreHealth и дождитесь, пока сканирование завершится.
4. Снова перезагрузите ПК.
Заключение
В первую очередь нужно перезагрузить компьютер. Это очистит его оперативную память и поможет решить проблему, если она вызвана каким-то сбоем в работе ПК. В большинстве других случаев хватает переустановки имеющихся или загрузки недостающих библиотек.