从DLL中获取DLL的名称

如果我有一个名为“foo.dll”的DLL,最终用户将其重命名为“bar.dll”和LoadLibrary的,我怎么能从我的DLL里面得到名称“bar.dll”?

它是GetModuleFilename(hModule,缓冲区); ?

Solutions Collecting From Web of "从DLL中获取DLL的名称"

是的,您需要将hmodulee存储在DllMain中

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

您需要提供DllMain函数,将您传递的模块句柄存储在静态变量中,然后使用该变量调用GetmoduleeFilename 。 你应该避免在DllMain本身中调用GetmoduleeFilename(或任何其他函数),因为Windows非常挑剔你可以做什么,不能在那里做什么。