MFC: Как получить имя файла DLL? - PullRequest
0 голосов
/ 15 ноября 2011

У меня есть MFC DLL, которая загружается сторонним приложением. Как я могу получить имя файла DLL из кода DLL? То есть, например, если имя DLL-файла mycode.dll, в коде я хочу получить строку «mycode.dll».

Я должен добавить, что если имя файла DLL изменяется на диске, то я хотел бы получить текущее имя на диске (я не имею в виду, что оно менялось во время выполнения, но менялось между вызовами основной программы). *

Моя DLL реализована как класс CWinApp, в моем коде нет явного DllMain.

Ответы [ 3 ]

2 голосов
/ 15 ноября 2011

Вы можете вызвать AfxGetStaticModuleState, чтобы получить указатель на структуру AFX_MODULE_STATE, в которой есть член m_lpszCurrentAppName, содержащий имя модуля (приложение или DLL в зависимости от того, откуда он вызывается).

1 голос
/ 15 марта 2014

Функция GetModuleFileName определенно возвращает EXE, КОТОРЫЙ ЗАГРУЗИЛ DLL ... а не саму DLL.Я бы опубликовал это как комментарий выше, но у меня пока недостаточно очков, ме. ​​

1 голос
/ 15 ноября 2011

См. Функцию Get GetModuleFileName .

Когда вы передаете NULL для первого параметра, он просто использует дескриптор текущего процесса.

...