Yar*_*veh 1 .net c# com interop exception
我正在使用c#代码中的cpp COM对象.我的c#代码如下所示:
try
{
var res = myComServer.GetSomething();
}
catch (Exception e) { }
Run Code Online (Sandbox Code Playgroud)
但是,异常永远不会包含我在cpp中设置的任何细节,特别是我的错误消息.
在我的cpp方面,我已经按照我在网上找到的几个例子:
...
ICreateErrorInfo *pcerrinfo;
IErrorInfo *perrinfo;
HRESULT hr;
hr = CreateErrorInfo(&pcerrinfo);
pcerrinfo->SetDescription(L"C++ Exception");
hr = pcerrinfo->QueryInterface(IID_IErrorInfo, (LPVOID FAR*) &perrinfo);
if (SUCCEEDED(hr))
{
SetErrorInfo(0, perrinfo);
perrinfo->Release();
}
pcerrinfo->Release();
return E_FAIL; // E_FAIL or other appropriate failure code
...
Run Code Online (Sandbox Code Playgroud)
我错过了什么吗?还有什么可以影响这个,比如编组,互操作创建或com服务器本身的属性?