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

时间:2011-07-12 00:51:30

标签: c++ dll process module

感谢您抽出宝贵时间阅读本文。

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

在我的C ++代码中加载其他几个C#DLL之后,我也把这个枚举。似乎也找不到那些。所有这些C#DLL都是动态加载的。我认为它应该无关紧要因为a)所有内容都被映射到进程地址空间,并且b)我有一个C ++ DLL注入(动态加载?),我可以发现就好了。我的目标是能够挂钩C#DLL函数,因此能够在这个项目中找到这些C#DLL是必须的。

再次感谢大家的任何提示或见解! =)

1 个答案:

答案 0 :(得分:1)

EnumProcessModulesEx不会枚举.Net DLL。它只枚举本机DLL。

您可以使用当前GetAssemblies的{​​{1}}方法枚举.Net DLL。