Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++;调用C#接口时,接收主机的程序不可用 我有一个C++程序调用了我在C语言中实现的一个接口。我一直收到错误0x80131023主机\u E\u CLRNOTAVAILABLE,该错误定义为CLR由于不可恢复的错误而被禁用。C++程序不会产生这个错误,除非我的程序被调用,但是我不能在栈跟踪中看到任何函数。有人对如何识别问题有什么建议吗_C#_C++_Com - Fatal编程技术网

C++;调用C#接口时,接收主机的程序不可用 我有一个C++程序调用了我在C语言中实现的一个接口。我一直收到错误0x80131023主机\u E\u CLRNOTAVAILABLE,该错误定义为CLR由于不可恢复的错误而被禁用。C++程序不会产生这个错误,除非我的程序被调用,但是我不能在栈跟踪中看到任何函数。有人对如何识别问题有什么建议吗

C++;调用C#接口时,接收主机的程序不可用 我有一个C++程序调用了我在C语言中实现的一个接口。我一直收到错误0x80131023主机\u E\u CLRNOTAVAILABLE,该错误定义为CLR由于不可恢复的错误而被禁用。C++程序不会产生这个错误,除非我的程序被调用,但是我不能在栈跟踪中看到任何函数。有人对如何识别问题有什么建议吗,c#,c++,com,C#,C++,Com,编辑: 我正在使用后期绑定创建IDispatch接口 IUnknown* pUnknown; hRC = CoCreateInstance( MyProgID, 0, CLSCTX_ALL, IID_IUnknown, (void**) &pUnknown

编辑: 我正在使用后期绑定创建IDispatch接口

 IUnknown* pUnknown;
 hRC = CoCreateInstance(
        MyProgID,                  
        0,                          
        CLSCTX_ALL,                 
        IID_IUnknown,               
        (void**) &pUnknown);        
hRC = pUnknown->QueryInterface(
        IID_IDispatch,              
        (void**) &_pService );      
pUnknown->Release();  
然后调用:

hRC = _pService->Invoke(
        _DispIDs[nDispIDIndex], IID_NULL, LOCALE_USER_DEFAULT,
        METHOD_TO_CALL, &Disp, &VarResult, NULL, NULL ); 

它成功地调用了大多数方法,没有错误。当调用Close方法时,它返回前面提到的错误

这里最可能的故障模式是,您的一个调用触发了一个未捕获的托管异常,并导致CLR关闭。这可能发生在由托管代码启动的线程中,因此不会使用HRESULT向您报告。如果留下跟踪,则输出窗口应该包含该跟踪的通知,即异常类型0xe0534f4d的“第一次机会异常”


使用托管调试器进行故障排除。VS有一个:项目+属性、调试、调试器类型设置。您可以强制使用Debug +异常自动中断,为CLR异常勾选被抛出的框。< /P>本机C++程序不加载加载代码,并首先初始化CLR。您没有努力描述如何确保首先加载CLR。“如果不先记录下来,你就不可能得到答案。”汉帕桑道歉,我不太确定什么有用。我已经按照建议更新了这个问题。