首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >调用C++ COM对象后从C#中的HRESULT检索错误消息

调用C++ COM对象后从C#中的HRESULT检索错误消息
EN

Stack Overflow用户
提问于 2014-01-20 16:56:24
回答 1查看 2K关注 0票数 1

我有一个用C#编写的COM对象。在某些情况下,如果COM对象遇到错误(例如throw new Exception("error message")),它可能会抛出带有描述性消息的异常。

这个COM对象是从VB6代码和C++代码调用的。

从VB6代码中,我可以使用Err.Message检索错误消息。

在C++中,我得到System.Exception文档中指定的HRESULT0x80131500。

在C++中有了这个HRESULT之后,如何获得异常(Exception.Message)的错误消息,就像Err.Message在VB6中返回的消息一样?

我搜索了网络,并找到了一些使用FormatMessage_com_error的例子,但是这些都没有返回我想要的信息。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-20 17:28:26

已更新。

尝试QueryInterface ISupportErrorInfo接口的失败对象,然后使用接口的REFIID调用InterfaceSupportsErrorInfo方法,抛出异常。如果它返回S_OK,那么只需要调用GetErrorInfo函数来获得IErrorInfo接口。然后使用GetDescription方法。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21239794

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档