使用时我得到奇怪的结果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;
}