Програму не вдалося запустити коректно (0xc0000018) - Windows 8 x64


13

Сьогодні я запустив свій комп’ютер, і деякі помилки з'явилися, як ця, тому деякі програми в автозапуску не запускалися:

Не вдалося запустити програму (0xc0000018).  Клацніть OK, щоб закрити програму

У мене ця помилка під час відкриття безлічі програм, я навіть не можу використовувати 7zip. Єдине, що я зробив вчора - це встановити гру через Steam, і тепер я не можу використовувати, як 70% програмного забезпечення на своєму ПК (більшість з них отримує цю помилку у всій програмі, а деякі лише на певних модулях).

Я щойно запустив a, SFC /scannnowі результат був такий: "Захист ресурсів Windows не виявив жодних порушень цілісності".

Чи може це бути якийсь вірус чи Steam, який щось зіпсував? Що я повинен зробити?


2
Це не вірус, але ваш реєстр все ще пошкоджений. Я б використав точку відновлення, щоб вирішити цю проблему
Рамхаунд

На жаль, я відключив точки відновлення на своєму ПК, щоб зберегти свій SSD, тому не можу цього зробити
dan_s

Ви можете спробувати зняти гру, парою ви можете її встановлювати кожен раз назад - можливо, це допомагає?
duDE

Я міг би спробувати, але я думаю, що Steam просто видалить деякі файли, а не виправить мої проблеми з реєстром.
dan_s

2
@Daniele - Steam не змінює реєстр. Установка DirectX може бути встановлена. Ви також припускаєте, що це була подія Steam, а не якась інша подія.
Рамхаунд

Відповіді:


8

Дякуємо за всі пропозиції, після деякого пошуку в Google я знайшов таке рішення, яке насправді виглядає як воно працювало для мене:

  1. Натисніть Win + R і введіть regedit
  2. Йти до HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\­Microsoft\WindowsNT\CurrentVersion\Windo­­ws
  3. Чим шукати APPINIT_DLLSі видаляти все, що в ньому
  4. Перезавантажте

Чи можете ви посилання на сайт, де ви знайшли інформацію про це редагування реєстру? Що це навіть робить?
Каран

Як не дивно, я знайшов це рішення у відео на YouTube ... Я не знаю, чому це заплуталося або чому це вирішило мою проблему, але воно спрацювало.
dan_s

У мене є ця ж проблема останнім часом, і я виявив, що цей реєстр "виправляє" згадані декілька місць, але цей ключ у моїй системі вже порожній.
Гордон

1
Мій ключ також був порожнім, і я отримував помилку при спробі запуску javaw / java sdk 8. Видалений порожній ключ, перезавантажений знову, і він спрацював. Може, це був третій перезапуск, який зробив трюк, хто знає.
Лі

Це не працює для ОС Windows 7+, оскільки механізм APPINIT_DLLS відключений за замовчуванням.
Нікос

8

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

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

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

І так, очищення APPINIT_DLLSв реєстрі - ваша перша ставка, щоб позбутися від можливих винуватців. Ці DLL-файли завантажуватимуться в кожен процес, який ви запускаєте, так що це може зіпсувати ваше життя.

Тоді як точно визначити фактичного винуватця DLL? Можливо, є спосіб, використовуйте dumpbin.exe, щоб перевірити всі DLL-файли APPINIT_DLLSабо інші можливі автоматично завантажені DLL-файли (допомога з AutoRuns ), перевірити їх по черзі dumpbin -headers. Якщо .relocрозділу немає , це DLL з фіксованим розташуванням .


2
Більш швидкий спосіб - це використовувати procmon. Остання DLL, яку процес намагався завантажити, повинна бути та, яка викликала помилку.
ivan_pozdeev

1
Неочевидний спосіб викликати цю помилку - це коли у виконавчого файлу є дуже великий розділ даних (наприклад, статичні масиви). Якщо розділ є досить великим, що він зазіхає на фіксовану адресу деяких DLL ядер, c0000018це відбудеться, якщо виконуваний файл є 32-розрядним. Завдяки 64-розрядному виконуваному файлу Windows відмовляється завантажувати їх із помилкою "поганого зображення", що досить заплутано. Зауважте, що помилка може з’являтися і зникати при складанні налагодження / випуску і з’являється несподівано після оновлення Windows змінити макет адресного простору системних dlls.
Антон Тихий

1

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

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


Як я вже говорив у коментарі вище, я відключив точки відновлення на своєму ПК, щоб зберегти свій SSD, тому не можу цього зробити. Я навіть не Restoreможу знайти функцію на своєму ПК, тому що, коли я натискаю кнопку Windows і намагаюся щось шукати на вкладці "Налаштування", тоді Metro просто замерзає.
dan_s

Ну, як я вже говорив вище (якщо вам це сподобалось), ви можете спробувати зняти гру, парою, ви можете її встановлювати кожен раз назад - можливо, це допомагає?
duDE

@Daniele - Якщо не в змозі навіть дивитися на екран Пуск свого часу Refreshвашої Windows 8установки. Для цього знадобиться перевстановлення ваших настільних програм.
Рамхаунд

0

Можливо, це пов’язано з наступними оновленнями MS та кінцевою точкою запобігання втрат даних McAfee (кінцева точка DLP). Схоже, існує конфлікт між оновленням MS та кінцевою точкою попередження втрат даних McAfee.

Відвідайте наступні веб-сайти, будь ласка: Microsoft Patch MS15-038 в Windows 7, коли встановлена кінцева точка запобігання втраті даних, Microsoft Security Bulletin MS15-038 - Важливо


Це також вплине на explorer.exe та cmd. Після запуску Windows програми, пов’язані з провідником, підкажуть: "Виконання сервера не вдалося".
Мехрдад Назмдар

Можливо, але ОП не згадав про використання McAfee і його посаді 2 роки. Він вирішив свою проблему без вашого патча, і ваш патч зовсім недавній. У будь-якому випадку, будь ласка, цитуйте основні частини відповіді із посилальних посилань (ив), оскільки відповідь може стати недійсною, якщо змінена пов’язана сторінка (и) зміниться.
DavidPostill
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.