在字符串中打印HRESULT符号(例如,E_FAIL作为CString)

时间:2014-11-27 15:10:51

标签: c++ winapi

我想在文本框中打印错误HRESULT" #define" -symbol,但我似乎无法找到如何做到这一点。当我在线搜索时,我发现的是如何获取错误描述文本等。

这就是我希望我的文本框输出的一部分:

Error: 0x80040E01 (DB_E_ROWLIMITEXCEEDED)

等所有可能的错误代码。 我使用_com_error err(hr)方法成功获得的十六进制值和错误描述文本。所以这一切都很好,但是我连接得到的messageID(在这个例子中是DB_E_ROWLIMITEXCEEDED)打印成一个字符串。

有什么建议吗?

1 个答案:

答案 0 :(得分:2)

这是FACILITY_ITF错误代码。您可以从第4个十六进制数字中得出结果为4. documentation说:

  

错误的实际含义由接口定义。也就是说,从两个不同的接口返回的具有完全相同的32位值的两个HRESULT可能具有不同的含义。

由于此错误由接口定义,并且未由系统定义,因此接口负责为错误提供任何描述性文本。如果界面没有这样做,那么你几乎陷入困境。我能做的最好的事情就是识别特定的界面,然后提供缺失的文本。