我有一个用C#创建的DLL,目的是为第三方C#库提供COM接口。我有一个使用该COM接口的C ++程序,以便它可以与C#库进行通信。有时,异常会在C#端被抛出,而我在C ++端返回的所有内容都是来自COM调用的HRESULT,表示“异常发生”(或类似的东西)。有没有办法让我获取整个异常信息,以便我可以在我的C ++应用程序日志中打印信息性消息?如果没有,是否有什么我可以在C#端拦截所有异常,然后它们触发任何机制将HRESULT返回到C ++,以便我可以在C#端登录它们?
答案 0 :(得分:4)
存在托管异常到HRESULT的映射。请参阅this MSDN article中的表格。 .NET使用IErrorInfo从COM对象检索错误信息。反过来也可能相反。值得一试。