检索DLL名称,而不是调用应用程序名称

Dav*_*wns 3 c++ com

我用C++写了两个COM类,包含在一个MFC DLL中.它们被第三方应用程序作为插件加载.

如何从这些类中获取DLL的文件名和版本号?

Sta*_*ked 6

TCHAR fileName[MAX_PATH + 1];
GetModuleFileName(hInstance, fileName, MAX_PATH);
Run Code Online (Sandbox Code Playgroud)

哪里hInstance是你在得到一个DllMain 功能.不要使用GetModuleHandle(0),因为它返回HINSTANCE主机应用程序.


Tot*_*nga 6

主dll条目为您提供了dll的句柄.

extern "C" int APIENTRY
DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)
Run Code Online (Sandbox Code Playgroud)

GetModuleFileName(hInstance, buffer, MAX_PATH);
Run Code Online (Sandbox Code Playgroud)

可用于获取DLL的文件名.

GetFileVersionInfoSize
GetFileVersionInfo
Run Code Online (Sandbox Code Playgroud)

将用于获取文件版本.