Iam在c ++项目中使用c#dll的SMO调用函数但是该dll中的代码抛出了一些异常,所以如何在我的C ++代码中显示异常消息
答案 0 :(得分:1)
这取决于你如何称呼它。如果你使用COM,那么你将失败HRESULT。您可以使用IErrorInfo来检索异常消息。如果您使用其他内容,那么您将丢失错误上下文,您只能看到一个异常代码为0xe0434f4e的SEH异常,只能使用__try和__except关键字进行捕获。
强烈建议使用COM。
发布代码后编辑。好的,你正在使用COM。并且#import指令创建的智能指针派生自_com_ptr_t。这些智能指针将失败的HRESULT转换为C ++异常。您需要捕获_com_error异常。该类还具有获取合适异常描述的管道,使用Description()方法。