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