C++から.NETデバッグAPIを使用しようとしています。私はこのようにそれを初期化し、このため
は(私は、コードをよりコンパクトにするためにいくつかのチェックを除去し、点まで):.NETデバッグAPI SetManagedHandlerがE_NOINTERFACEを返す
typedef HRESULT (STDAPICALLTYPE *CreateDebuggerFunc)(int debuggerVersion, LPCWSTR szDebuggeeVersion, IUnknown ** ppCordb);
HMODULE mscoree = LoadLibraryA("mscoree.dll");
CreateDebuggerFunc CreateDebugger = (CreateDebuggerFunc)GetProcAddress(mscoree, "CreateDebuggingInterfaceFromVersion");
const int iDebuggerVersion = CorDebugVersion_2_0; // if we’re a v2.0 debugger.
IUnknown* unknown = NULL;
wchar_t * szEverettVersion = L"v2.0.50727";//v4.0.30319";
HRESULT res = CreateDebugger(iDebuggerVersion, szEverettVersion, &unknown);
res = unknown->QueryInterface(IID_ICorDebug, (void**) &m_core);
res = m_core->Initialize();
NetCallbacks* test = new NetCallbacks();
res = m_core->SetManagedHandler(test);
NetCallbacks
クラスは現在ICorDebugManagedCallbackとICorDebugManagedCallback2の空のメソッドを実装するだけダミークラスであります。
m_core-> SetManagedHandlerを呼び出す何らかの理由で、私はE_NOINTERFACEを取得します。 これはどのようにすることができますか?必要なメソッドをすべて実装していなければ、NetCallbacks
のオブジェクトを作成することはできません。
私は間違っていますか?