如何在DLL中找到加载它的进程
How to find in a DLL which process loaded it?
我正在完善一个DLL模块,它可以作为Windows应用程序的插件。
此插件可与单个软件系列的各种版本兼容。现在,对于某些功能,我必须访问父软件的配置文件。由于不同版本的软件在不同的地方有这些,我必须找出哪个版本加载DLL。通过进程可执行文件名称(即abc_v1.exe、abc_v2.exe、abc_v3.exe)可以很容易地识别不同的版本。
有没有办法获得加载DLL的进程的名称?我使用C++和一些基本的WinAPI命令,但不是ATL、MFC或类似的命令。
目前,我正在使用它自己的SDK功能轮询父软件,但这需要打开连接。根据配置文件的内容,DLL不需要打开连接,所以我想知道在建立通信之前加载了哪个版本。
调用GetModuleFileName
,传递NULL
作为模块句柄。来自文件:
正在请求其路径的已加载模块的句柄。如果此参数为NULL,GetModuleFileName将检索当前进程的可执行文件的路径。
相关文章:
- std::原子加载和存储都需要吗
- 如何加载(或映射)文件部分的最大大小,但适合在Windows上的RAM
- CoreCLR 中的检测探查器 - 将帮助程序程序集加载到 dotnet 进程的方法
- 如何将LLDB附加到C# .NET进程并调试动态加载的macOS捆绑包?
- 枚举已加载特定 DLL 的进程
- Visual Studio 在附加到进程时不会加载模块
- Linux 进程加载程序在 C++
- 简单的进程加载程序内存映射
- 如何在DLL中找到加载它的进程
- 使用execvp();执行进程时加载用户环境;
- 如何判断共享库在进程地址空间中的加载位置
- 如何附加到加载我的DLL并调试它的进程
- 如何防止一个特定的DLL加载到我的进程
- 如何在vc++中在多个进程中加载单个DLL
- 知道哪个Mac进程正在加载我的库框架
- 我可以从运行时加载的共享对象访问宿主进程的符号吗?任何选择
- 在进程启动时加载依赖缓存
- 调用由另一个进程加载的DLL中的函数
- 加载库vs加载二进制dll到进程
- 加载进程以运行webrequest