मुझे डर है कि बहुत से लोग रहस्यमय 0xC0000018 EXE लॉन्च त्रुटि का मूल कारण जानते हैं क्योंकि Microsoft इसे विंडोज़ 10 तक अस्पष्ट बना देता है। एमएस विंडोज 4-एड के लिए जेफरी रिक्टर के प्रोग्रामिंग एप्लिकेशन को पढ़ने पर , मुझे यह पता लगाने के लिए हुआ।
अगर एक DLL को एक निश्चित पते (प्रोसेस वर्चुअल एड्रेस स्पेस) में लोड किया जाना है, लेकिन आवश्यकता पूरी नहीं हो सकती है, तो Windows बहुत ही 0xC0000018 त्रुटि का दावा करता है। लेकिन यह बताने के लिए कोई स्पष्ट सुराग नहीं है कि कौन सी डीएलएल समस्या का कारण है। "0xC0000018" की एक साधारण Google खोज आपको बहुत सारे बफ़ल्ड उपयोगकर्ताओं के पोस्ट के साथ पॉप करती है।
पुन: पेश करने के लिए, आप एक EXE और दो DLL के साथ एक समाधान (विजुअल स्टूडियो टर्म) तैयार कर सकते हैं और दोनों DLL को लिंकर विकल्प के लिए सेट कर सकते हैं /FIXED /BASE:"0x44440000"
और EXE को दो DLL लोड कर सकते हैं, फिर आपको EXE लॉन्च पर 0xC0000008 त्रुटि दिखाई देगी।
और हां, APPINIT_DLLS
संभावित अपराधियों से छुटकारा पाने के लिए रजिस्ट्री में सफाई करना आपका पहला दांव है। उन DLL को आपके द्वारा लॉन्च की गई प्रत्येक प्रक्रिया में लोड किया जाएगा ताकि आपका जीना बर्बाद हो जाए।
फिर वास्तविक अपराधी DLL को कैसे इंगित करें? शायद एक तरीका है, हर DLL को APPINIT_DLLS
या अन्य संभावित ऑटो-लोडेड DLL ( AutoRuns के साथ मदद ) की जाँच करने के लिए, उन्हें एक-एक करके जाँचने के लिए dipbin.exe का उपयोग करें dumpbin -headers
। यदि कोई .reloc
खंड नहीं है , तो यह एक निश्चित स्थान DLL है।