可以Dllmain使用FreeLibrary吗?

Cna*_*eak 4 c c++ dll winapi

我想创建一个dll,在某些condifiton的情况下卸载它自己,意思是

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);

}
Run Code Online (Sandbox Code Playgroud)

我试过了,但我无法让它发挥作用.如果有替代解决方案.请告诉我,我不希望附加dll的进程卸载它,我希望它自己卸载它

Pup*_*ppy 14

你无法卸载DLL,它尚未加载.这就是BOOL回报的目的.如果您不想加载DLL,则返回FALSE.