我想創建卸載它自身的一些condifiton的情況下,一個DLL,這意味着可以Dllmain使用FreeLibrary?
BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)
{
if (ul_reason_for_call==DLL_PROCESS_ATTACH)
if (!CheckSomething()) //check if a file doesnt exists for example
FreeLibrary(hModule);
}
我試過,但我不能讓它開始工作。如果有其他解決方案的話。請告訴我,我不想要附加dll的進程卸載它,我想讓它卸載它自己
避免這樣做,客戶端代碼變得非常難以診斷的錯誤就是沒有絲毫關係的真正原因DLL不能正常工作。您可以隨時在客戶端代碼可能要使用的任何導出函數中調用CheckSomething()。 – 2011-12-27 16:45:36
@HansPassant感謝您的回覆,但在我的情況下,我無法控制客戶端,我需要這樣做這種骯髒的方式,這不是很好的做法..任何方式我會返回false,以防我不希望它被加載.. – CnativeFreak 2011-12-27 16:49:29