使用时我得到奇怪的结果RegQueryValueEx,我不知道为什么。
这是我在制作之前设置的RegQueryValueEx
DWORD dataSize;
TCHAR data[256];
我第一次打电话
LONG ret = RegQueryValueEx( hKey, dataKey, NULL, NULL, (LPBYTE)data, &dataSize);
ret等于 234 ( ERROR_MORE_DATA)
但是当我在下一行调用同样的东西时
LONG ret2 = RegQueryValueEx( hKey, dataKey, NULL, NULL, (LPBYTE)data, &dataSize);
ret2等于 0 ( ERROR_SUCCESS)
为什么这个函数会ERROR_MORE_DATA在我第一次调用它时返回,然后ERROR_SUCESS在下一行的同一个调用中返回?
我试图改变TCHAR data[1024],但我得到了完全相同的结果。有任何想法吗?
完整代码:
for( int i=0; i<NUM_HISTORY; i++){
CString dataKey = getDataKey(i);
DWORD dataSize = 1024;
TCHAR data[1024];
LONG ret = RegQueryValueEx( hKey, dataKey, NULL, NULL, (LPBYTE)data, &dataSize);
LONG ret2 = RegQueryValueEx( hKey, dataKey, NULL, NULL, (LPBYTE)data, &dataSize);
// Breakpoint to see what ret and ret2 are equal to
int j = 0;
}