0
RegEnumValueを使用して単一の値の名前を表示しようとしています(私はRegGetValueを使用できますが、RegEnumValue関数を使用する方法を学習しようとしています)が、 "パラメータが正しくありません"。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引数も間違っています。 –
なぜ 'options'が間違っていますか? MSDNの記事には、「このパラメータをゼロまたはそれ以下に設定する」と記載されています。私はシンボリックリンク –