RegOpenKeyEx - 错误代码 7 是什么意思?

RegOpenKeyEx - what does error code 7 mean?

我正在尝试用 C 编写简单的程序,该程序从 Windows 注册表中写入和读取内容。 RegOpenKeyEx 的 return 值为 7 是什么意思?

我很难猜到。是的,MSDN 说我可以使用 FormatMessage 来检查它,但它需要 7 个参数,我不知道如何使用它......(顺便说一句,多么糟糕的 api 设计)。

MSDN entry for RegOpenKeyEx还表示:

If the function fails, the return value is a nonzero error code defined in Winerror.h.

这些错误代码记录在 MSDN - System Error Codes 页面中。如果你真的得到 7,那么这个错误将对应于:

ERROR_ARENA_TRASHED
7 (0x7)
The storage control blocks were destroyed.

这意味着从您的注册表被破坏到导致看似奇怪的行为的一系列程序错误,或者只是您正在获得其他东西作为 return 值并导致相信你得到的结果是 7。如果没有更完整的代码示例,就很难尝试更具体的内容。

P.S.:如果您试图在 运行 时获取错误的字符串表示,FormatMessage 非常方便。如果是这种情况,您可以参考 this answer 以获取有关如何使用它的示例。