Приложение не удалось правильно запустить (0xc0000018) - Windows 8 x64

13

Сегодня я запустил свой компьютер, и некоторые ошибки появились, как эта, поэтому некоторые программы в автозапуске не запускались:

Приложение не удалось запустить правильно (0xc0000018).  Нажмите OK, чтобы закрыть приложение

У меня есть эта ошибка при открытии многих программ, я даже не могу использовать 7zip. Единственное, что я сделал вчера, - это установил игру через Steam, и теперь я не могу использовать около 70% программного обеспечения на моем компьютере (большинство из них получают эту ошибку во всей программе, а некоторые только на некоторых ее модулях).

Я просто запустил, SFC /scannnowи результат был: «Защита ресурсов Windows не обнаружила никаких нарушений целостности».

Может ли это быть какой-то вирус или Steam, который что-то испортил? Что мне делать?

dan_s
источник
2
Это не вирус, но ваш реестр все еще поврежден. Я бы использовал точку восстановления, чтобы решить эту проблему
Ramhound
К сожалению, я отключил точки восстановления на моем ПК, чтобы сохранить SSD, поэтому я не могу этого сделать
dan_s
Вы можете попробовать деинсталлировать игру, Steam вы можете установить ее обратно каждый раз - может быть, это помогает?
duDE
Я мог бы попробовать, но я думаю, что Steam просто удалит некоторые файлы, а не исправит проблемы с реестром.
dan_s
2
@Daniele - Steam не изменяет реестр. Установка DirectX может. Вы также предполагаете, что это было событие Steam, а не какое-либо другое событие.
Ramhound

Ответы:

8

Спасибо за все предложения, после некоторого поиска в Google я нашел это решение, которое на самом деле выглядит так, как будто оно работает для меня:

  1. Нажмите Win + R и введите regedit
  2. Перейти к HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\­Microsoft\WindowsNT\CurrentVersion\Windo­­ws
  3. Чем искать APPINIT_DLLSи удалять все в нем
  4. перезагрузка
dan_s
источник
Можете ли вы дать ссылку на сайт, где вы нашли информацию об этом редактировании реестра? Что это вообще делает?
Каран
Как ни странно, я нашел это решение в видео на YouTube ... Я не знаю, почему оно испортилось или почему это решило мою проблему, но это сработало.
dan_s
В последнее время у меня возникла та же проблема, и я обнаружил, что это исправление реестра упоминало несколько мест, но этот ключ уже пуст в моей системе.
Гордон
1
Мой ключ также был пустым, и я получал сообщение об ошибке при попытке запустить javaw / java sdk 8. Удалил пустой ключ, перезагрузился снова, и он заработал. Может быть, это была третья перезагрузка, которая сделала свое дело, кто знает.
Ли
Это не работает для ОС Windows 7+, поскольку механизм APPINIT_DLLS по умолчанию отключен.
Никос
8

Я боюсь, что очень немногие знают причину таинственной ошибки запуска 0xC0000018 EXE, потому что Microsoft делает ее расплывчатой, даже до Windows 10. При чтении Джеффри Рихтера Приложения для программирования для MS Windows 4-е, я случайно обнаружил это.

Если DLL требуется загрузить по фиксированному адресу (в виртуальном адресном пространстве процесса), но это требование не может быть выполнено, Windows выдает ошибку 0xC0000018. Но нет никакой очевидной подсказки, чтобы сказать, какие DLL вызывают проблему. Простой поиск Google "0xC0000018" просто выводит вас с большим количеством сообщений озадаченных пользователей.

Чтобы воспроизвести, вы можете подготовить решение (термин Visual Studio) с одним EXE и двумя DLL, и установить для обоих DLL параметр с компоновщиком, /FIXED /BASE:"0x44440000"и чтобы EXE неявно загружал две библиотеки DLL, тогда вы увидите ошибку 0xC0000018 при запуске EXE.

И да, очистка APPINIT_DLLSв реестре - ваша первая ставка, чтобы избавиться от возможных преступников. Эти DLL будут загружены в каждый процесс, который вы запускаете, так что это может испортить вам жизнь.

Тогда как точно определить виновника DLL? Возможно, есть способ, используйте dumpbin.exe, чтобы проверить каждую DLL-библиотеку APPINIT_DLLSили другие возможные автоматически загружаемые DLL-библиотеки (помогите с автозапуском ), проверьте их по одному dumpbin -headers. Если .relocраздела нет , то это DLL с фиксированным расположением .

Джимм Чен
источник
2
Более быстрый способ заключается в использовании procmon. Последняя DLL, которую пытался загрузить процесс, должна быть той, которая вызвала ошибку.
ivan_pozdeev
1
Неочевидный способ вызвать эту ошибку - когда исполняемый файл имеет очень большой раздел данных (например, статические массивы). Если раздел достаточно велик, чтобы он покушался на фиксированный адрес некоторой библиотеки DLL ядра, c0000018произойдет, если исполняемый файл 32-битный. С 64-битными исполняемыми файлами Windows отказывается загружать их с ошибкой «плохой образ», что весьма запутанно. Обратите внимание, что ошибка может появляться и исчезать при сборках отладки / выпуска и неожиданно появляться после того, как обновления Windows изменят структуру адресного пространства системных библиотек.
Антон Тихий
1

Я установил около 40 игр через Steam, и у меня нет проблем, нет, я не думаю, что это плохо для Steam. Попробуйте восстановить вашу систему, используя точки восстановления Windows: http://windows.microsoft.com/en-ph/windows-vista/system-restore-frequently-asked-questions

[EDITED] Может быть, пропущены некоторые DLL, вы можете проверить зависимости программы, которую вы не можете запустить, используя Dependency Walker: http://www.dependencywalker.com/

пижон
источник
Как я уже говорил в комментарии выше, я отключил точки восстановления на моем ПК, чтобы сохранить SSD, поэтому я не могу этого сделать. Я даже не могу найти Restoreв моем ПК, потому что, когда я нажимаю кнопку Windows и пытаюсь найти что-то на вкладке «Настройки», Metro просто останавливается.
dan_s
Ну, как я сказал выше (если вам так нравится), вы можете попытаться удалить игру, Steam вы можете установить ее обратно каждый раз - может быть, это поможет?
duDE
@Daniele - Если вы не можете даже увидеть стартовый экран, пора к Refreshвашей Windows 8установке. Это потребует переустановки настольных приложений.
Ramhound
0

Возможно, это связано со следующим обновлением MS и конечной точкой предотвращения потери данных McAfee (конечная точка DLP). Похоже, что существует конфликт между обновлением MS и конечной точкой предотвращения потери данных McAfee.

Посетите следующие веб-сайты, пожалуйста: Microsoft Patch MS15-038 в Windows 7, когда установлена конечная точка предотвращения потери данных Бюллетень по безопасности Microsoft MS15-038 - Важное

Мехрдад Назмар
источник
Это также повлияет на explorer.exe и cmd. После запуска Windows программы, связанные с проводником, предложат: «Ошибка выполнения сервера».
Мехрдад Назмар
Возможно, но ОП не упоминал об использовании McAfee и его посту 2 года. Он исправил свою проблему без вашего патча, а ваш патч - совсем новый. В любом случае, пожалуйста, указывайте основные части ответа по ссылочной ссылке (ссылкам), так как ответ может стать недействительным, если связанные страницы будут изменены.
ДэвидПостилл