gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 04:09:23 27 4
gpt4 key购买 nike

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

此 COM 对象从 VB6 代码和 C++ 代码调用。

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

在 C++ 中,我得到了 System.Exception 文档中指定的 HRESULT 0x80131500。

一旦我在 C++ 中有了这个 HRESULT,我怎样才能像 VB6 中的 Err.Message 返回的消息一样得到异常的错误消息 (Exception.Message) ?

我在网上搜索并找到了一些使用 FormatMessage_com_error 的示例,但没有一个返回我想要的消息。

最佳答案

已更新。

尝试 QueryInterface ISupportErrorInfo 接口(interface)的失败对象,然后使用 REFIID 调用 InterfaceSupportsErrorInfo 方法接口(interface)抛出异常。如果它返回 S_OK,则只调用 GetErrorInfo函数获取 IErrorInfo界面。然后使用 GetDescription 方法。

关于c++ - 调用 C# COM 对象后从 C++ 中的 HRESULT 检索错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21239794/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com