从RegQueryValueEx()DWORD返回无效数据
Returning invalid data from RegQueryValueEx() DWORD
我正在尝试从注册表中读取DWORD值。在注册表中,它存储为0x00000068(104)。当我从注册表中读取值时,我得到了一个很大的数字(3435973836)。感谢您的帮助!
DWORD getRecentId(PDWORD id) {
HKEY hKey;
LONG lRes = RegOpenKeyEx(HKEY_CURRENT_USER, _T("SOFTWARE\My App\Feed Reader"), 0, KEY_QUERY_VALUE, &hKey);
if (!lRes == ERROR_SUCCESS)
{
RegCloseKey(hKey);
return ERROR_FILE_NOT_FOUND;
}
DWORD dwSize = sizeof(DWORD);
lRes = RegQueryValueEx(hKey, _T("Latest"), NULL, NULL, (LPBYTE)&id, &dwSize);
if (!lRes == ERROR_SUCCESS)
{
RegCloseKey(hKey);
return ERROR_NOT_ENOUGH_MEMORY;
}
RegCloseKey(hKey);
return lRes;
}
3435973836是一个神奇的数字。将其转换为十六进制以获得0xcccccccc。当您在Visual Studio调试器中看到这一点时,就会知道您正在使用未初始化的变量。
事实上,使用&id
是错误的。这会改变指针,而不是指向的值。请改用id
。
相关文章:
- 枚举进程模块在有效句柄上返回无效句柄
- Gmock:返回无效值
- get 函数返回无效值
- 为什么VS2017协程不能返回无效?
- 为什么此 DirectX 10 "D3DXVec3Lerp" 函数返回无效数字?
- GetFileAttributes返回无效输入的File_attribute_directory
- 通过fscanf()获取文本文件中的所有字符将返回无效的字符计数
- 返回无效引用
- DirectShow BindToObject返回无效句柄
- math.h中的函数使用C++/clr返回无效结果
- 从RegQueryValueEx()DWORD返回无效数据
- OpenGL: glGetError() 在调用 glewInit() 后返回无效的枚举
- QDateTime::fromstring( __DATE__, "MMM d yyyy" ) 返回无效
- QDateTime::fromString返回无效日期,我缺少什么
- 地址操作符在嵌入式环境中返回无效地址
- 在Linux下,由于sin6_port值,sendto在UDP原始套接字ipv6上返回无效参数
- Inet_aton()返回无效IP地址成功
- FindFirstFile总是返回无效句柄
- 使用openxml编辑docx将返回无效的内存流
- WinInet HttpQuery信息返回无效状态码