Как вызвать ICorDebug

В проектах "MDbg Sample.zip" вызовите функцию из COM-модуля как: [ComImport, Guid("3D6F5F61-7538-11D3-8D5B-00104B35E7EF"), InterfaceType((short) 1)] открытый интерфейс ICorDebug { ... } Вопрос в том, где найти Guid ("3D6F5F61-7538-11D3-8D5B-00104B35E7EF"), я не могу найти его в regedit, но как подключить интерфейс ICoreDebug к COM-модулю?

1 ответ

Это не в реестре. Этот идентификатор является IID, ICorDebug не поддерживает удаленный доступ, поэтому нет причин регистрировать заглушку / прокси на интерфейсе.

То, как вы получите экземпляр, зависит от того, какие версии среды выполнения установлены, но в наши дни "у всех" установлен CLRv4, поэтому вы получаете доступ через ICLRMetaHost.

  • Используйте CLRCreateInstance, чтобы получить реализацию ICLRMetaHost
  • Используйте ICLRMetaHost, чтобы найти ICLRRuntimeInfo для требуемой версии среды выполнения.
  • Используйте ICLRRuntimeInfo.GetInterface, чтобы запросить реализацию ICorDebug с помощью CLSID_CLRDebuggingLegacy.
Другие вопросы по тегам