0
RegEnumValue를 사용하여 단일 값의 이름을 표시하려고합니다. RegGetValue를 사용할 수 있지만 RegEnumValue 함수를 사용하는 방법을 배우려고합니다. 그러나 오류 코드 87이 발생합니다. "매개 변수가 올바르지 않습니다".RegEnumValue가 포함 된 오류 코드 87
int wmain()
{
//RegOpenKeyEx
HKEY hKey = HKEY_CURRENT_USER;
LPCWSTR subKey = L"WinSide";
DWORD options = 0;
REGSAM samDesired = KEY_QUERY_VALUE;
HKEY pkOpenResult;
//RegEnumValue
DWORD index = 0;
WCHAR valueName[16383];
LPWSTR pValueName = valueName;
DWORD size=sizeof(valueName);
DWORD reserved = NULL;
DWORD type;
WCHAR data[255];
LPWSTR pData=data;
DWORD sizeData = sizeof(data);
LONG openKey = RegOpenKeyEx(hKey, subKey, options, samDesired, &pkOpenResult);
if (openKey != ERROR_SUCCESS)
{
wprintf(L"Error opening the key. Code: %li\n");
}
else
{
wprintf(L"Key opened!\n");
LONG enumValue = RegEnumValue(pkOpenResult, index, pValueName, &size,
&reserved, &type, pData, &sizeData);
if (enumValue != ERROR_SUCCESS)
wprintf(L"Error code: %li\n", enumValue);
else
{
wprintf(L"Going to show the value's name here!");
}
RegCloseKey(pkOpenResult);
}
return 0;
}
내가 잘못 뭐하는 거지 :
여기 내 코드입니까?
실수해서 죄송합니다.
그래서 ...'NULL '에 대한 포인터로'reserved'를 만들 수 있습니까? 그리고'size'는'DWORD size = wcslen (valueName);과 같을 것입니다. 맞습니까? –
옵션 인수도 잘못되었습니다. –
'options '가 잘못된 이유는 무엇입니까? MSDN 기사에서는 "이 매개 변수를 0 또는 다음으로 설정하십시오"라고 말합니다. 나는 심볼릭 링크로 작업하고 있지 않다. –