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

Fab*_*.sk 6 c++ dll winapi

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

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

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

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

Dav*_*nan 5

调用GetModuleFileName传递NULL作为模块句柄.从文档:

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