2011-12-16 5 views
0

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のオブジェクトを作成することはできません。

私は間違っていますか?

答えて

関連する問題