1

问题说明的差不多。我有一个运行的 .net exe,然后加载我的库(在 c++ 中)。有什么方法可以让 mscoree 在启动 .net exe 时加载 ICLRMetaHost 或类似接口?我想这样做主要是为了可以从我的本机库中访问 gc 和内存相关设置以进行调试。

使用单主机 api 指出类似的实现的奖励点。

4

1 回答 1

2

我不明白为什么正常的获取方式ICLRMetaHost在 CLR 加载的 DLL 中不起作用......

  1. mscoree.dll 上的 LoadLibrary
  2. 找到 的地址CLRCreateInstance
  3. 如此处CLRCreateInstance所示调用 以获取.ICLRMetaHost
  4. 打电话EnumerateLoadedRuntimes,希望只有一个加载...
  5. 从您枚举的运行时信息中获取ICLRRuntimeHost.
  6. ICLRRuntimeHost获得ICLRControl
  7. ICLRControl获得ICLRGCManager
于 2015-03-18T16:34:29.543 回答