C++,枚举加载的模块时找不到加载的 C# DLL

C++, Can't find loaded C# DLL while enumerating loaded modules

本文关键字:加载 找不到 DLL 模块 C++ 枚举      更新时间:2023-10-16

感谢您花时间阅读这篇文章。

情况基本上是,我使用EnumProcessModulesEx枚举加载进程中的所有模块。我已经验证了我使用GetCurrentProcess获得的进程是正确的(通过ID)。除了我想要的模块外,我似乎得到了所有加载的模块!它是一个c# DLL,只在调用c# DLL函数时加载。在运行枚举函数之前,我确保加载了DLL。是否有原因这个c# DLL不会显示?

我还在我的c++代码中加载了其他几个c# dll之后放置了这个枚举。它似乎也找不到这些。所有这些c# dll都是动态加载的。我认为这应该无关紧要,因为a)一切都映射到进程地址空间,b)我有一个注入的c++ DLL(动态加载?),我可以找到那很好。我的目标是能够钩住一个c# DLL函数,所以在这个项目中必须能够找到这些c# DLL。

再次感谢大家的任何建议或见解!div =)

EnumProcessModulesEx将不枚举。net dll。它只枚举本机dll。

可以使用当前AppDomainGetAssemblies方法枚举。net dll