我正在尝试为.NET框架编写一个非托管调试器,但是当我尝试获取核心ICORDebug接口的实例时,我得到了CoCreateInstance返回值的运行时故障。我做错了什么?
CComPtr<ICorDebug> debug;
HRESULT hr;
hr=debug.CoCreateInstance(CLSID_CorDebug,NULL,CLSCTX_INPROC_SERVER);
//hr=0x80131701
答案 0 :(得分:0)
.NET的执行引擎返回以0x8013开头的错误代码。详细信息如下:http://blogs.msdn.com/b/yizhang/archive/2010/12/17/interpreting-hresults-returned-from-net-clr-0x8013xxxx.aspx
您的特定代码与“未找到导出”有关,这可能对非托管C ++编码器更有意义。
我不明白为什么你不能写一个非托管程序来调试托管的.NET,虽然这听起来像是额外的努力。 ICorDebug无论如何都是一个COM接口,所以如果您的调试器是管理的,那么您将学到很多关于COM Interop的知识。 : - )