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

时间:2015-03-15 19:08:44

标签: c winapi error-code

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

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

1 个答案:

答案 0 :(得分:1)

MSDN entry for RegOpenKeyEx也表示:

  

如果函数失败,则返回值是Winerror.h中定义的非零错误代码。

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

  

<强> ERROR_ARENA_TRASHED
      7(0x7)       存储控制块被破坏了。

这意味着你的注册表被破坏,一系列的程序错误导致看似奇怪的行为,或者仅仅是你得到了其他东西作为返回值,并且导致你相信你得到的结果是7.如果没有更完整的代码示例,很难冒险更具体。

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