RegOpenKeyEx()出错

时间:2012-09-21 09:45:18

标签: c++ qt winapi registry windows-7-x64

我正在使用Qt和mingw编写一个更改注册表的程序,但是当我打电话时:

RegOpenKeyEx(HKEY_LOCAL_MACHINE,
             "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\DefaultProductKey",
             0,
             KEY_ALL_ACCESS|KEY_WOW64_64KEY,
             &key);

Qt返回:

`KEY_WOW64_64KEY' undeclared (first use in this function)

我添加了"#include <windows.h>",但它仍无效。

我发现这篇文章Error with RegOpenKeyEx,问题与我相同,答案看起来不错。 但我不使用Windows XP我使用7(64位)。 所以我踩到了targetver.h:

#ifndef _WIN32_WINNT_WIN7
#define _WIN32_WINNT_WIN7 (0x0601)
#endif  /* _WIN32_WINNT_WIN7 */

它仍然不起作用...... :(

我该怎么办? :(

谢谢:)

(抱歉我的英语不好)

1 个答案:

答案 0 :(得分:4)

在包含_WIN32_WINNT标题之前,您必须定义windows.h(不是_WIN32_WINNT_WIN7):

#ifndef _WIN32_WINNT
#define _WIN32_WINNT (0x0601)
#endif  /* _WIN32_WINNT */

#include <windows.h>