Hatta Jeffrey Richter'in okurken, Windows 10 kadar Microsoft bu belirsiz hale getirir, çünkü korkuyor çok az insan gizemli 0xC0000018 EXE fırlatma hata kök nedenini biliyor değilim MS Windows için Programlama Uygulamaları 4-ed, onu öğrenmek oldu.
Bir DLL'nin sabit bir adrese yüklenmesi gerekiyorsa (işlem sanal adres alanında), ancak gereksinim karşılanamıyorsa, Windows çok 0xC0000018 hatasını verir. Ancak hangi DLL (ler) in soruna neden olduğunu söylemek için belirgin bir ipucu yoktur. "0xC0000018" adlı basit bir Google araması, sizi şaşkın kullanıcılar tarafından gönderilen çok sayıda mesajla karşılıyor.
Çoğaltmak için, bir EXE ve iki DLL ile bir çözüm (Visual Studio terimi) hazırlayabilir ve her iki DLL'i de linker seçeneğine /FIXED /BASE:"0x44440000"sahip olacak ve EXE'in iki DLL dosyasını örtük olarak yükleyecek şekilde ayarlayabildiğinizde , EXE başlangıcında 0xC0000018 hatası göreceksiniz.
Ve evet, APPINIT_DLLSkayıt defterinde temizlemek olası suçlulardan kurtulmak için ilk bahsiniz. Bu DLL'ler başlattığınız her işleme yüklenecek, böylece hayatınızı mahvedebilir.
Sonra gerçek suçlu DLL saptamak için nasıl? Belki her DLL kontrol etmek için bir yolu, kullanım dumpbin.exe yoktur APPINIT_DLLSya da diğer olası otomatik yüklenen DLL'lerden (ile yardım autoruns ) ile teker teker kontrol dumpbin -headers. .relocBölüm yoksa, sabit konumlu bir DLL'dir.