我有一个由第三方应用程序加载的MFC DLL。如何从DLL的代码中获取DLL文件名?也就是说,例如,如果DLL的名称是mycode.dll,在代码中我希望能够检索字符串" mycode.dll"。
我应该补充一点,如果在磁盘上更改了DLL文件名,那么我想在磁盘上获取当前名称(我不是指在运行时更改,而是在主程序的调用之间进行更改)。
我的DLL是作为CWinApp类实现的,我的代码没有明确的DllMain。
答案 0 :(得分:2)
您可以调用AfxGetStaticModuleState
来获取指向AFX_MODULE_STATE
结构的指针,该结构的成员m_lpszCurrentAppName
包含模块名称(app或DLL取决于它的调用位置)。< / p>
答案 1 :(得分:1)
请参阅获取GetModuleFileName功能。
当您为第一个参数传递NULL时,它将只使用当前进程的句柄。
答案 2 :(得分:1)
GetModuleFileName函数肯定会返回加载DLL的EXE ...而不是DLL本身。我会在上面发表评论,但我还没有足够的分数,嗯。