我在注册表中有一个包含3个REG_BINARY
值的键。
我可以完美地阅读第一个,但是当我尝试获取第二个和第三个值时,即使数据只有10个BYTES,我也会收到ERROR_MORE_DATA
错误。我没有获得该值,但我得到了它的良好数据长度。
HKEY hKey;
long nError;
DWORD sizeData;
BYTE Data[256];
nError = RegOpenKeyEx(HKEY_CURRENT_USER, "Software\\MyProg\\Test01",
NULL,KEY_ALL_ACCESS, &hKey );
if(!nError)
{ nError = RegQueryValueEx(hKey, "1", NULL, NULL, (LPBYTE)&Data,
&sizeData); // This one does OK
nError = RegQueryValueEx(hKey, "2", NULL, NULL, (LPBYTE)&Data,
&sizeData); // Here I get the good value for sizeData but ERROR_MORE_DATA
nError = RegQueryValueEx(hKey, "3", NULL, NULL, (LPBYTE)Data,
&sizeData); // Same ERROR here too
}
RegCloseKey(hKey);
注意:在注册表中我有这些键:
1 REG_BINARY c5 31 56 f4 d3 22 17 88 64 e3 2 REG_BINARY 45 48 47 c5 d2 21 77 3 REG_BINARY dd ef 45 2e fc 10
我做错了什么?
我删除了nError
的测试以减少代码的大小,但在我的程序中,我得到nError = ERROR_MORE_DATA
。