0

我正在开发一个使用 HIDAPI 进行 USB 通信的程序,似乎 API 函数 hid_error() 直接从 Windows 返回最后一条错误消息,而不是 API 本身生成的消息。我在哪里可以找到所有可能的错误消息的列表,以便我可以更准确地对错误做出反应?

4

2 回答 2

2

除了 Windows 上的常规错误代码之外,我相信您正在寻找以下两个功能,其文档似乎是 Google 上的第一个结果。

第一个功能将允许您根据系统错误代码检查错误代码,并根据您的愿望(尽管您没有分享您需要任何自定义的原因),您可以显示自定义错误消息,或者您可以只使用第二个功能是在可行的情况下保留它。当然,您也可以保留 hid_error 输出,因为它是等效的。

1)获取错误代码本身。

GetLastError 函数

检索调用线程的最后一个错误代码值。最后一个错误代码是在每个线程的基础上维护的。多个线程不会覆盖彼此的最后一个错误代码。

2)从错误代码中获取字符串。

FormatMessage 函数

格式化消息字符串。该函数需要一个消息定义作为输入。消息定义可以来自传递给函数的缓冲区。它可以来自已加载模块中的消息表资源。或者调用者可以要求函数在系统的消息表资源中搜索消息定义。该函数根据消息标识符和语言标识符在消息表资源中查找消息定义。该函数将格式化的消息文本复制到输出缓冲区,如果请求,则处理任何嵌入的插入序列。

例如,在Qt应用程序中,这将是一种更自然的方式来处理您的自定义问题:

QString QtWin::errorStringFromHresult(HRESULT hresult)

如果消息未知,则返回指定的 hresult 错误 id 的代码名称(通常是 WinAPI 宏的名称)或空字符串。

于 2013-12-31T03:38:34.900 回答
1

您可能会查看系统错误代码

于 2013-12-28T06:08:03.733 回答