将HRESULT转换为可读消息

cod*_*ife 5 c# com excel vsto

任何人都可以提供一些有关如何以编程方式将HRESULT(http://en.wikipedia.org/wiki/HRESULT)值转换为人类可读消息的信息吗?

我知道实用程序ERR.EXE执行此操作,但我的应用程序需要向我的用户显示一些有意义的消息,而不是一个神秘的0x800A03EC.

Han*_*ant 3

没有内置支持从具有该值的 HRESULT 生成消息。COM 组件需要使用 IErrorInfo 接口自行实现。

.NET 中内置的 CLR 互操作支持已经自动执行此操作,您永远不需要帮助。当它看到 COM 接口方法返回失败代码时,它会自动引发适当的异常。Message 属性是从 IErrorInfo 初始化的。如果您没有收到像样的消息,那么 COM 服务器就不会提供它。

0x800a03ec 很可能是这样,它是一个低级 Excel 错误,有很多错误原因。您可以通过谷歌搜索“excel error 1004”找到大量相关内容。