基本上是问题所陈述的内容。我有一个运行的.net exe,然后加载我的库(在c++中)。有什么方法可以获得mscoree在启动.net exe时加载的ICLRMetaHost或类似接口吗?我主要想这样做,这样我就可以从我的本地库中访问gc和内存相关的设置,用于调试目的。
使用mono-hostingapi指出类似实现的额外点数。
我不明白为什么从CLR加载的DLL中获取ICLRMetaHost
的正常方式不起作用。。。
- mscoree.dll上的LoadLibrary
- 查找
CLRCreateInstance
的地址 - 调用
CLRCreateInstance
,如下所示以获得CCD_ 4 - 调用
EnumerateLoadedRuntimes
并希望只有一个加载 - 从您枚举的运行时信息中获取
ICLRRuntimeHost
- 从
ICLRRuntimeHost
获得ICLRControl
- 从
ICLRControl
获得ICLRGCManager