난 제프리 리히터의 읽을 때 윈도우 10 때까지 MS가 모호하게하기 때문에 두려워 아주 소수의 사람들이 신비 0xC0000018 EXE 실행 오류의 근본 원인을 알고있어 MS 윈도우 프로그래밍 응용 4 - 에드, 내가 그것을 알아 일어났다.
DLL을 고정 주소 (프로세스 가상 주소 공간에서)에로드해야하지만 요구 사항을 충족 할 수없는 경우 Windows에서 매우 0xC0000018 오류가 발생합니다. 그러나 어떤 DLL이 문제를 일으키는 지 알 수있는 확실한 실마리는 없습니다. "0xC0000018"의 간단한 Google 검색은 당황한 사용자의 많은 게시물로 나타납니다.
재현하려면 하나의 EXE와 두 개의 DLL로 솔루션 (Visual Studio 용어)을 준비하고 두 링커 옵션을 갖도록 DLL을 설정 /FIXED /BASE:"0x44440000"하고 EXE가 두 개의 DLL을 암시 적으로로드하도록하면 EXE 시작시 0xC0000018 오류가 표시됩니다.
그리고 네, APPINIT_DLLS레지스트리에서 삭제하는 것은 가능한 범인을 제거하는 첫 번째 내기입니다. 이러한 DLL은 시작하는 모든 프로세스에로드되므로 라이브를 망칠 수 있습니다.
그렇다면 실제 범인 DLL을 어떻게 찾아 낼 수 있습니까? 아마도 모든 DLL을 확인하는 방법, 사용 DUMPBIN.EXE가 APPINIT_DLLS또는 다른 가능한 자동으로로드 된 DLL (도움 자동 실행을 ,)를 하나씩 확인은 dumpbin -headers. .reloc섹션 이 없으면 고정 위치 DLL입니다.