【问题标题】:C++, Can't find loaded C# DLL while enumerating loaded modulesC++,在枚举加载的模块时找不到加载的 C# DLL
【发布时间】:2011-07-12 00:51:30
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: c++ dll process module


    【解决方案1】:

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

    您可以使用当前AppDomainGetAssemblies 方法来枚举.Net DLL。

    【讨论】:

    • 谢谢!我会调查的。我会投票给你,但我不能。 =(
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-06-10
    • 1970-01-01
    • 1970-01-01
    • 2022-11-28
    • 1970-01-01
    • 2017-07-28
    • 2018-08-13
    相关资源
    最近更新 更多