2016-12-01 14 views
-1

Rufen Sie in "MDbg Sample.zip" -Projekten die Funktion vom COM-Modul wie folgt auf: [ComImport, Guid ("3D6F5F61-7538-11D3-8D5B-00104B35E7EF"), InterfaceType ((kurz) 1) ] public interface ICorDebug {...} Die Frage ist, wo die Guid ("3D6F5F61-7538-11D3-8D5B-00104B35E7EF") zu finden ist, ich kann es nicht im regedit finden, aber wie man die ICoreDebug Schnittstelle mit dem COM verbindet Modul?So rufen Sie ICorDebug auf

Antwort

1

Es ist nicht in der Registrierung. Diese GUID ist die IID, ICorDebug unterstützt keinen Remotezugriff, daher gibt es keinen Grund, einen Stub/Proxy für die Schnittstelle zu registrieren.

Wie Sie eine Instanz erhalten, hängt davon ab, welche Versionen der Laufzeit installiert sind, aber heutzutage hat "Jeder" CLRv4 installiert, sodass Sie über den ICLRMetaHost zugreifen können.

+0

Vielen Dank! –

+0

Hallo @Brian Reichle, habe ich entsprechend Ihren Aufforderungen programmiert: hr = pRuntimeInfo-> GetInterface (CLSID_CLRRuntimeHost, IID_PPV_ARGS (& pRuntimeHost)); hr = pRuntimeInfo-> GetInterface (CLSID_CLRRuntimeHost, IID_ICLRRuntimeHost, (LPVOID *) & pRuntimeHost); Aber wenn ich den Code debugge, gibt es eine Benachrichtigung als: Es gibt keine Typinformation in der Symboldatei für . Weißt du, wie man dieses Problem löst? Danke vielmals. –

+0

Ich bin nicht wirklich sicher, was du meinst, aber 'CLSID_CLRRuntimeHost' sieht fehl am Platze aus. (ICLRRuntimeHost ist, was Sie verwenden, um eine Laufzeit in Ihrem Prozess zu hosten, es wird normalerweise nicht zum Erstellen eines ICorDebug verwendet) –