如何在DLL中找到哪个进程加载呢?

时间:2013-11-25 20:54:19

标签: c++ winapi dll

我正在改进一个DLL模块,它充当Windows应用程序的一种插件。

此插件与单个软件行的各种版本兼容。 现在,对于某个功能,我必须访问父软件的配置文件。由于软件的不同版本在不同的地方有这些,我必须找出加载DLL的版本。 可通过进程可执行文件名称(即abc_v1.exe,abc_v2.exe,abc_v3.exe)轻松识别单独的版本。

有没有办法获取加载DLL的进程的名称?我正在使用C ++和一些基本的WinAPI命令,但不是ATL,MFC等。

目前我正在使用它自己的SDK功能轮询父软件,但这需要打开连接。根据配置文件的内容,DLL不需要打开连接,因此我想知道在建立通信之前加载了哪个版本。

1 个答案:

答案 0 :(得分:5)

调用GetModuleFileName传递NULL作为模块句柄。来自documentation

  

正在请求路径的已加载模块的句柄。如果此参数为NULL,则GetModuleFileName将检索当前进程的可执行文件的路径。