MFC:如何获得DLL文件名

MFC: How to get DLL file name?

本文关键字:DLL 文件名 何获得 MFC      更新时间:2023-10-16

我有一个由第三方应用程序加载的MFC DLL。如何从DLL的代码中获得DLL的文件名?也就是说,例如,如果DLL的名称是mycode.dll,在代码中我希望能够检索字符串"mycode.dll"。

我应该补充说,如果DLL文件名在磁盘上更改,那么我想在磁盘上获得当前名称(我不是指在运行时更改,而是在主程序的调用之间更改)。

我的DLL是作为CWinApp类实现的,我的代码没有显式的DllMain。

您可以调用AfxGetStaticModuleState来获得指向AFX_MODULE_STATE结构的指针,该结构的成员m_lpszCurrentAppName包含模块名称(应用程序或DLL取决于从何处调用)。

参见Get GetModuleFileName函数。

当你传入NULL作为第一个参数时,它将只使用当前进程的句柄

GetModuleFileName函数明确返回加载DLL的EXE…而不是DLL本身。我本想把这篇文章作为评论贴出来,但是我还没有足够的分数。