我正在尝试用C语言编写简单程序,它从Windows注册表中写入和读取内容。 RegOpenKeyEx
的7的返回值是什么意思?
我很难猜到它。是的,MSDN说我可以使用FormatMessage来检查它,但它需要7个参数,我不知道如何使用它...(顺便说一句,这是一个糟糕的api设计)。
答案 0 :(得分:1)
MSDN entry for RegOpenKeyEx
也表示:
如果函数失败,则返回值是Winerror.h中定义的非零错误代码。
这些错误代码记录在MSDN - System Error Codes页面中。如果你真的得到7,那么这个错误将对应于:
<强> ERROR_ARENA_TRASHED 强>
7(0x7) 存储控制块被破坏了。
这意味着你的注册表被破坏,一系列的程序错误导致看似奇怪的行为,或者仅仅是你得到了其他东西作为返回值,并且导致你相信你得到的结果是7.如果没有更完整的代码示例,很难冒险更具体。
P.S。:FormatMessage
如果您在运行时尝试获取错误的字符串表示,则非常方便。如果是这种情况,您可以参考this answer获取有关如何使用它的示例。