1
我正在使用CRegKey从注册表中检索DWORD值。下面的代码返回0(BUF为零),但在注册表中的实际值是1354357483.QueryDWORDValue返回0
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?数据添加/丢失对于我所要做的并不是真正的问题。
正在读取正确的值。 Backgrounder [is here](http://msdn.microsoft.com/en-us/library/windows/desktop/aa384232%28v=vs.85%29.aspx) – 2013-05-04 11:53:19
有没有什么方法可以读取我的值请参阅32位应用程序的注册表编辑器? – cen 2013-05-04 14:34:01
看左边。点击“访问备用注册表视图”。 – 2013-05-04 15:34:37