如何获取DLL的文件名?

我有一个C ++ Windows应用程序myapp.exe加载了几个插件。

插件需要find其DLL的path。 我可以使用GetModuleFileName,但是它需要插件DLL的句柄。 我不知道从哪里得到这个句柄。 GetModuleHandle(NULL)将句柄返回给可执行文件。

一个select是使用GetModuleHandle(GetModuleHandle(“myplugin.dll”)),但是这需要插件的名称是硬编码,我想避免。

任何帮助表示赞赏。

保罗

我不知道从哪里得到这个句柄

它作为参数传递给你的DLLMain()入口函数。

如果插件不能访问它的DLLMain()入口函数,它可以在一块自己的内存上使用VirtualQuery函数,并使用填充的MEMORY_BASIC_INFORMATION结构的AllocationBase字段作为它的HMODULE。