代码之家  ›  专栏  ›  技术社区  ›  code4life

将hresult转换为可读消息

  •  5
  • code4life  · 技术社区  · 14 年前

    有人能提供一些关于如何以编程方式翻译hresult的信息吗?( http://en.wikipedia.org/wiki/HRESULT )对人类可读信息的价值?

    我知道实用程序err.exe可以做到这一点,但我的应用程序需要向我的用户显示一些有意义的消息,而不是神秘的0x800a03ec。

    2 回复  |  直到 14 年前
        1
  •  3
  •   Hans Passant    14 年前

    对于从具有该值的hresult生成消息,没有内置支持。COM组件需要使用ierrorinfo接口本身实现它。

    内置于.NET中的clr interop支持已经自动完成了这项工作,您不应该需要帮助。当它看到一个COM接口方法返回一个失败代码时,它会自动抛出一个适当的异常。消息属性是从IErrorInfo初始化的。如果你没有收到任何像样的消息,那么COM服务器就不提供它。

    这很可能是因为0x800A03EC,它是一个带有许多错误原因的抓包低级Excel错误。你可以通过谷歌搜索“Excel错误1004”找到很多点击率。

        2
  •  3
  •   nkrkv    14 年前

    你试过了吗? FormatMessage 功能?您可以从C使用pinvoke机制来使用它。