gpt4 book ai didi

c++ - 如何在一个DLL中找到哪个进程加载了它?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:34:47 31 4
gpt4 key购买 nike

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

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

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

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

最佳答案

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

A handle to the loaded module whose path is being requested. If this parameter is NULL, GetModuleFileName retrieves the path of the executable file of the current process.

关于c++ - 如何在一个DLL中找到哪个进程加载了它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20203097/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com