如何将HRESULT从C#返回到C++,而不是抛出异常



目前我正在编写一个C++客户端将使用的C#COM服务器。当C#代码中出现特定异常时,我想向C++代码返回特定的HRESULT,如以下

// 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,而不仅仅是任何异常。

相关内容

  • 没有找到相关文章

最新更新