Aplikacja nie mogła uruchomić się poprawnie (0xc0000018) - Windows 8 x64

13

Dzisiaj uruchomiłem komputer i niektóre błędy pojawiły się tak, jak ten, więc niektóre programy w autorun nie uruchomiły się:

Aplikacja nie mogła uruchomić się poprawnie (0xc0000018).  Kliknij przycisk OK, aby zamknąć aplikację

Mam ten błąd podczas otwierania wielu programów, nie mogę nawet użyć 7zip. Jedyną rzeczą, którą zrobiłem wczoraj, było zainstalowanie gry przez Steam, a teraz nie mogę korzystać z 70% oprogramowania na moim komputerze (większość z nich otrzymuje ten błąd w całym programie, a niektóre tylko w niektórych modułach).

Właśnie uruchomiłem a, SFC /scannnowa wynik był następujący: „Ochrona zasobów systemu Windows nie wykryła żadnych naruszeń integralności”.

Czy to może być jakiś wirus lub Steam, który coś pomieszał? Co powinienem zrobić?

dan_s
źródło
2
To nie jest wirus, ale rejestr jest nadal uszkodzony. Chciałbym skorzystać z punktu przywracania, aby rozwiązać ten problem
Ramhound
Niestety wyłączyłem punkty przywracania na moim komputerze, aby zachować dysk SSD, więc nie mogę tego zrobić
dan_s
Możesz spróbować odinstalować grę, za pomocą Steam możesz ją zainstalować za każdym razem - może to pomaga?
duDE
Mógłbym spróbować, ale myślę, że Steam po prostu usunie niektóre pliki i nie naprawi problemów z rejestrem.
dan_s
2
@Daniele - Steam nie modyfikuje rejestru. Instalacja DirectX może. Zakładasz również, że było to wydarzenie Steam i żadne inne wydarzenie.
Ramhound,

Odpowiedzi:

8

Dzięki za wszystkie sugestie, po pewnym czasie w Google znalazłem to rozwiązanie, które wygląda na to, że zadziałało dla mnie:

  1. Naciśnij Win + R i wpisz regedit
  2. Iść do HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\­Microsoft\WindowsNT\CurrentVersion\Windo­­ws
  3. Następnie wyszukaj APPINIT_DLLSi usuń wszystko w nim
  4. Restart
dan_s
źródło
Czy możesz przejść do strony, na której znalazłeś informacje o tej edycji rejestru? Co to w ogóle robi?
Karan
Dziwnie znalazłem to rozwiązanie w filmie na YouTube ... Nie wiem, dlaczego to popsuło lub dlaczego to rozwiązało mój problem, ale zadziałało.
dan_s
Mam ostatnio ten sam problem i stwierdziłem, że ta „poprawka” rejestru wspomniała o kilku miejscach, ale ten klucz jest już pusty w moim systemie.
Gordon
1
Mój klucz również był pusty i otrzymywałem błąd podczas próby uruchomienia javaw / java sdk 8. Usunąłem pusty klucz, uruchomiłem ponownie i działało. Być może był to trzeci restart, który załatwił sprawę, kto wie.
Lee
Nie działa to w systemie Windows 7+ OS, ponieważ mechanizm APPINIT_DLLS jest domyślnie wyłączony.
Nikos
8

Obawiam się, że bardzo niewiele osób zna pierwotną przyczynę tajemniczego błędu uruchamiania 0xC0000018 EXE, ponieważ Microsoft sprawia, że ​​jest niejasny, nawet do Windows 10. Podczas czytania aplikacji programistycznych Jeffreya Richtera dla MS Windows 4-go, znalazłem to.

Jeśli biblioteka DLL wymaga załadowania pod stałym adresem (w wirtualnej przestrzeni adresowej procesu), ale wymaganie nie może zostać spełnione, system Windows zgłasza błąd 0xC0000018. Ale nie ma wyraźnej wskazówki, która by wskazać, które biblioteki DLL powodują problem. Proste wyszukiwanie w Google „0xC0000018” po prostu wyświetla mnóstwo postów zdezorientowanych użytkowników.

Aby odtworzyć, możesz przygotować rozwiązanie (termin Visual Studio) z jednym plikiem EXE i dwiema biblioteką DLL, i ustawić obydwie biblioteki DLL na opcję łączenia /FIXED /BASE:"0x44440000"i mieć domyślnie ładowanie dwóch bibliotek DLL przez EXE, a następnie przy uruchomieniu EXE zobaczysz błąd 0xC0000018.

I tak, wyczyszczenie APPINIT_DLLSrejestru jest pierwszym krokiem do pozbycia się potencjalnych winowajców. Te biblioteki DLL będą ładowane do każdego uruchamianego procesu, więc mogą zrujnować twoje życie.

Jak więc wskazać rzeczywistą winowajcę DLL? Być może istnieje sposób, użyj dumpbin.exe do sprawdzenia każdej biblioteki DLL APPINIT_DLLSlub innych możliwych automatycznie ładowanych bibliotek DLL (pomoc w AutoRuns ), sprawdź je pojedynczo za pomocą dumpbin -headers. Jeśli nie ma .relocsekcji, jest to biblioteka DLL o stałej lokalizacji .

Jimm Chen
źródło
2
Szybszym sposobem jest użycie procmon. Ostatnia biblioteka DLL, którą proces próbował załadować, musi być tą, która spowodowała błąd.
ivan_pozdeev
1
Nieoczywistym sposobem wywołania tego błędu jest sytuacja, gdy plik wykonywalny ma bardzo dużą sekcję danych (np. Tablice statyczne). Jeśli sekcja jest na tyle duża, że ​​wkracza na stały adres biblioteki DLL jądra, c0000018nastąpi, jeśli plik wykonywalny jest 32-bitowy. W przypadku 64-bitowych plików wykonywalnych system Windows odmawia załadowania ich z błędem „złego obrazu”, co jest dość mylące. Zauważ, że błąd może pojawić się i zniknąć wraz z kompilacjami debugowania / wydania i pojawić się nieoczekiwanie po tym, jak aktualizacje systemu Windows zmienią układ przestrzeni adresowej bibliotek systemowych.
Anton Tykhyy,
1

Zainstalowałem około 40 gier przez Steam i nie mam żadnych problemów, nie, nie uważam, że to źle ze Steam. Spróbuj przywrócić system za pomocą punktów przywracania systemu Windows: http://windows.microsoft.com/en-ph/windows-vista/system-restore-frequently-asked-questions

[EDYCJE] Być może brakuje niektórych bibliotek DLL, możesz przetestować zależności programu, którego nie możesz zacząć używać Dependency Walker: http://www.dependencywalker.com/

koleś
źródło
Jak powiedziałem w powyższym komentarzu, wyłączyłem punkty przywracania na moim komputerze, aby zachować dysk SSD, więc nie mogę tego zrobić. Nie mogę nawet wyszukiwać na Restoreswoim komputerze, ponieważ kiedy naciskam przycisk Windows i próbuję wyszukać coś w zakładce „Ustawienia”, to Metro po prostu zamarza.
dan_s
Cóż, jak powiedziałem powyżej (jeśli podoba ci się w ten sposób), możesz spróbować odinstalować grę, za pomocą Steam możesz ją ponownie zainstalować za każdym razem - może to pomaga?
duDE
@Daniele - Jeśli nie można nawet zobaczyć na ekranie startowym swój czas do Refreshswojej Windows 8instalacji. Będzie to wymagać ponownej instalacji aplikacji komputerowych.
Ramhound
0

Może to być związane z następującą aktualizacją MS Update i McAfee Data Loss Prevention Endpoint (DLP Endpoint). Wydaje się, że istnieje konflikt między aktualizacją MS a punktem końcowym Zapobiegania utracie danych McAfee.

Odwiedź następujące witryny: Microsoft Patch MS15-038 na Windows 7, gdy zainstalowany jest Punkt końcowy Zapobieganie utracie danych Biuletyn zabezpieczeń firmy Microsoft MS15-038 - Ważna

Mehrdad Nazmdar
źródło
Wpłynie to również na explorer.exe i cmd. Po uruchomieniu systemu Windows powiązane programy eksploratora zapytają: „Błąd wykonania serwera”.
Mehrdad Nazmdar,
Być może, ale OP nie wspomniał o użyciu McAfee, a jego post ma 2 lata. Naprawił swój problem bez twojej łatki, a twoja łatka jest bardzo nowa. W każdym razie proszę podać podstawowe części odpowiedzi z linku (linków) referencyjnych, ponieważ odpowiedź może stać się nieważna w przypadku zmiany połączonych stron.
DavidPostill