如何将HRESULT从C#返回到C而不是抛出异常?
作者:互联网
目前我正在编写一个C#COM服务器,它将由C客户端使用.我想在C#代码中引发特定异常时将某个HRESULT返回给C代码,如下所示
// C# COM Server Code
public void MyMethod()
{
try
{
//Some Processing
}
catch(CertainException e)
{
//I pass in my Own HResult int to the my Custom Exception
MyCustomException ex = new MyCustomException(unchecked((int)0xc00491fe));
throw ex;
}
}
//C++ Code
HRESULT hr = pMyComInstance->MyMethod();
我希望从我的C代码中获得的“hr”是我在C#代码中分配的int,但是我没有得到HRRESULT,而是在C代码中仍然有例外.
我做错了什么吗?请帮忙..谢谢
解决方法:
为了返回HRESULTS,您需要抛出一个COMException,而不仅仅是抛出任何异常.
标签:c,net,exception,com-interop,hresult 来源: https://codeday.me/bug/20190613/1233738.html