我正在使用 CRegKey 从注册表中检索 DWORD 值。下面的代码返回 0(buf 为零),但注册表中的实际值为 1354357483。
CRegKey reg;
reg.Open(HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion", KEY_READ);
DWORD buf;
DWORD s = reg.QueryDWORDValue("InstallDate", buf);
if (s == ERROR_SUCCESS) {
reg.QueryDWORDValue("InstallDate", buf);
cout << hex << buf;
}
我怀疑它与字符集有关,但到目前为止我找不到解决方案。我的项目字符设置设置为“未设置”。我尝试使用 Unicode 并使用宽字符串无济于事。
还有一个后续问题,是否有从注册表读取二进制数据并将其转换为 std::string 的好方法?对于我正在尝试做的事情,数据添加/丢失并不是真正的问题。