39

有人可以帮我解码这个 HResult 吗?这是什么意思?我知道否定代表失败。剩下的 10 位呢?

我在这里引用了 MSDN HResult 文章,但我不确定如何确定我的设施和代码位是什么。

更多信息:

_message:“外部组件已引发异常。”
数据:{System.Collections.ListDictionaryInternal}

4

4 回答 4

81

我会告诉你怎么做。在程序员模式“Dec”设置中将负数粘贴到计算器(Windows)中。然后转换为“十六进制”设置。你会得到号码:FFFFFFFF80004005。错误是 80004005,即:

0x80004005
E_FAIL
Unspecified 

不幸的是,给你这个错误的函数的提供者没有对错误进行分类。

有用的链接:

  1. MSDN - HRESULT 格式
  2. MSDN - HRESULT 错误列表
于 2014-03-18T23:57:52.980 回答
3

将其打印为十六进制数,然后使用例如 VisualStudio ErrorLookup 来获取消息。

于 2014-03-18T23:57:30.140 回答
3

十进制的 -2147467259 是十六进制的 80004005(通常呈现为 0x80004005)。那就是 Win32 中的“E_FAIL(未指定错误)”

不是一个非常有用的错误代码,但也许它会让你更接近解决方案。

于 2014-03-18T23:57:41.500 回答
3

另一种方法如下。HRESULT应在其前 32 位中包含系统错误代码。使用 AND 操作将从 HRESULT 中检索错误代码:

int result = (-2147467259 & 0xFFFF)

result是 16389,它不是系统错误代码列表的一部分,因此未指定。

于 2015-01-19T23:20:43.897 回答