我有一个C ++ Windows应用程序myapp.exe,它可以加载几个插件。
插件需要找到其DLL的路径。我可以使用GetModuleFileName,但它需要插件DLL的句柄。我不知道从哪里得到这个句柄。 GetModuleHandle(NULL)返回可执行文件的句柄。
一个选项是使用GetModuleHandle(GetModuleHandle(“myplugin.dll”)),但这需要硬编码插件的名称,我想避免使用。
感谢任何帮助。
保
答案 0 :(得分:10)
我不知道从哪里得到这个句柄
它作为参数传递给你的DLLMain()入口函数。
如果插件无法访问其DLLMain()入口函数,它可以在自己的一块内存上使用VirtualQuery函数,并使用填充的MEMORY_BASIC_INFORMATION结构的AllocationBase字段作为其HMODULE。