2009-05-17 15 views
5

के भीतर से एक डीएलएल का नाम प्राप्त करना यदि मेरे पास "foo.dll" नामक एक डीएल है और अंतिम उपयोगकर्ता इसे "bar.dll" और LoadLibrary के नाम पर पुनर्नामित करता है, तो मैं "bar.dll" नाम कैसे प्राप्त कर सकता हूं "मेरे डीएलएल के अंदर से?डीएल

क्या यह GetModuleFilename (HModule, बफर) है; ?

उत्तर

7

हां, तो आप DllMain

BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) 
{ 
    switch (fdwReason) 
    { 
    case DLL_PROCESS_ATTACH: 
     hModule = hinstDLL; 
     break; 
    } 
} 
4

में hModule स्टोर करने के लिए आप, DllMain समारोह प्रदान मॉड्यूल संभाल आप एक स्थिर चर में पारित हो की दुकान, और फिर उस चर का उपयोग GetModuleFilename कॉल करने के लिए की जरूरत की जरूरत है। आपको DllMain में GetModuleFilename (या कोई अन्य फ़ंक्शन) कॉल करने से बचना चाहिए, क्योंकि विंडोज़ आप जो कर सकते हैं उसके बारे में बहुत पसंद करते हैं और वहां नहीं कर सकते हैं।