MFC:如何获取DLL文件名?

时间:2011-11-15 17:58:24

标签: c++ windows dll mfc filenames

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

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

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

3 个答案:

答案 0 :(得分:2)

您可以调用AfxGetStaticModuleState来获取指向AFX_MODULE_STATE结构的指针,该结构的成员m_lpszCurrentAppName包含模块名称(app或DLL取决于它的调用位置)。< / p>

答案 1 :(得分:1)

请参阅获取GetModuleFileName功能。

当您为第一个参数传递NULL时,它将只使用当前进程的句柄。

答案 2 :(得分:1)

GetModuleFileName函数肯定会返回加载DLL的EXE ...而不是DLL本身。我会在上面发表评论,但我还没有足够的分数,嗯。