小编ffr*_*777的帖子

RegQueryValueEx获得一个奇怪的值

我试图从注册表中检索一些值.以下是完整路径:[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes]"ThemeChangesMousePointers"= 0x00000001(1)

这是我的代码:

HKEY hKey;
DWORD dwDisp = REG_DWORD;
DWORD dwType;
DWORD dwSize = sizeof(DWORD);
DWORD dwValue = 0;
DWORD dwReturn;
char buffer[255] = {0};
//char* buffer;
//DWORD buffer = 0;
DWORD dwBufSize = sizeof(buffer);

if( RegOpenKey(HKEY_LOCAL_MACHINE,
    _T("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Themes")
    ,&hKey) == ERROR_SUCCESS)
{
    dwType = REG_DWORD;
    if( RegQueryValueEx(hKey,_T("ThemeChangesMousePointers"),0, &dwType, (LPBYTE) buffer, &dwBufSize) == ERROR_SUCCESS)
    {
        printf("Key value is: %d \n", buffer);
        printf("GetLastError reports %d \n", GetLastError());
    }
    else
    {
        printf("Cannot query for key value \n");
    }
}
Run Code Online (Sandbox Code Playgroud)

我试过调试,看起来我的缓冲区输出变量给了我一个奇怪的输出:

键值为:2554292错误为0

每次我再次运行代码时,我都会得到不同的值.我怎样才能获得真正的价值而不是另一个?

编辑:上面的帖子已被编辑,以提出一个不同的问题. …

c c++ visual-c++

1
推荐指数
1
解决办法
7479
查看次数

标签 统计

c ×1

c++ ×1

visual-c++ ×1