如何获取DLL的文件名? 我有一个C++ Windows应用程序MyApp.EXE,它加载了几个插件。

如何获取DLL的文件名? 我有一个C++ Windows应用程序MyApp.EXE,它加载了几个插件。,c++,windows,dll,C++,Windows,Dll,插件需要找到其DLL的路径。我可以使用GetModuleFileName,但它需要插件DLL的句柄。我不知道从哪里弄到这个把手。GetModuleHandle(NULL)返回可执行文件的句柄 一种选择是使用GetModuleHandle(GetModuleHandle(“myplugin.dll”)),但这需要硬编码插件的名称,我希望避免这种情况 感谢您的帮助 保罗 我不知道从哪里弄到这个把手 它作为参数传递给DLLMain()entry函数 如果插件无法访问其DLLMain()entry函数,

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

一种选择是使用GetModuleHandle(GetModuleHandle(“myplugin.dll”)),但这需要硬编码插件的名称,我希望避免这种情况

感谢您的帮助

保罗

我不知道从哪里弄到这个把手

它作为参数传递给DLLMain()entry函数


如果插件无法访问其DLLMain()entry函数,它可以在自己的内存中使用VirtualQuery函数,并使用填充内存基本信息结构的AllocationBase字段作为其HMODULE。

非常感谢Chris。下面是我使用的函数:HINSTANCE GetMyModuleHandle(){MEMORY\u BASIC\u INFORMATION mbi;VirtualQuery(GetMyModuleHandle,&mbi,sizeof(mbi));return(HINSTANCE)(mbi.AllocationBase);}