如何获取DLL的文件名?

时间:2009-05-10 20:27:23

标签: c++ windows dll

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

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

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

感谢任何帮助。

1 个答案:

答案 0 :(得分:10)

  

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

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

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