「MDbg Sample.zip」プロジェクトでは、COM モジュールから次の関数を呼び出します: [ComImport, Guid("3D6F5F61-7538-11D3-8D5B-00104B35E7EF"), InterfaceType((short) 1)] public interface ICorDebug { ...問題は、Guid("3D6F5F61-7538-11D3-8D5B-00104B35E7EF") を見つける場所です。regedit で見つけることができませんが、ICoreDebug インターフェイスを COM モジュールに接続する方法を教えてください。
1 に答える
1
レジストリにはありません。その GUID は IID です。ICorDebug はリモート アクセスをサポートしていないため、インターフェイスに対してスタブ/プロキシを登録する理由はありません。
インスタンスを取得する方法は、インストールされているランタイムのバージョンによって異なりますが、最近では "すべて" に CLRv4 がインストールされているため、ICLRMetaHost 経由でアクセスします。
- CLRCreateInstanceを使用してICLRMetaHostの実装を取得する
- ICLRMetaHost を使用して、必要なバージョンのランタイムのICLRRuntimeInfoを見つけます。
- CLSID_CLRDebuggingLegacyを使用して ICorDebug の実装を要求するには、ICLRRuntimeInfo.GetInterface を使用します。
于 2016-12-01T11:43:32.047 に答える