C++ 当前进程的DLL

C++ 当前进程的DLL,c++,windows,dll,process,C++,Windows,Dll,Process,使用非CLR C++如何(通过ID)判断哪个DLL是给定的正在运行的进程?具有指向这些DLL和EXE的文件系统路径 提前感谢。如果您试图在代码中执行此操作,您可能正在查找函数(或K32EnumProcessModules,具体取决于操作系统。有关详细信息,请参阅链接)。有一个EnumProcessModulesEx可以为您提供更多的信息。只需给它一个进程句柄,就可以知道加载了哪些模块(DLL)。如果你不知道句柄,你可以使用enumprocess或OpenProcess找到它,如果你知道PID的话

使用非CLR C++如何(通过ID)判断哪个DLL是给定的正在运行的进程?具有指向这些DLL和EXE的文件系统路径


提前感谢。

如果您试图在代码中执行此操作,您可能正在查找函数(或
K32EnumProcessModules
,具体取决于操作系统。有关详细信息,请参阅链接)。有一个
EnumProcessModulesEx
可以为您提供更多的信息。只需给它一个进程句柄,就可以知道加载了哪些模块(DLL)。如果你不知道句柄,你可以使用
enumprocess
OpenProcess
找到它,如果你知道PID的话。

可能的dublicate@Anton:加载的模块不同于依赖项,而另一个问题是.NET关注的。@Ben Voigt:我是根据那个问题中公认的答案说到重复的。答案包括EnumProcessModules函数,该函数返回“运行时流程依赖项”或流程中加载的所有模块。我只是重读了那个问题,它确实是关于静态依赖的,所以你是绝对正确的。@Anton:你确实有一点,尽管另一个问题并不完全是一个骗局,但答案也涵盖了这个问题。@Ben:是的!这很奇怪,但这些不同的问题有相同的答案。实际上,这个问题的答案并不是这个问题的答案。在这里,您可以找到示例代码,它演示了使用
EnumProcessModules
函数的方法。这个问题明确地针对当前的流程,必须有一个更好的p@DitmarWendt这个答案也适用于其他流程(正如我在回答中已经说过的)。EnumProcessModules接受要枚举的任何进程的句柄。