レジストリエントリのキーを読み取るアプリケーションがあります。
その上でうまく機能しますMulti-Byte Character Set
しかし、そのUnicode character set
上でキーを開くことはできません
これは私のコードです:
HKEY hkey = 0;
char buf[255] = {0};
DWORD dwType = 0;
DWORD dwBufSize = sizeof(buf);
const char* subkey_x64 = "SOFTWARE\\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\UCP";
const char* subkey_x86 = "SOWTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\UCP";
if (RegOpenKey(HKEY_LOCAL_MACHINE, (LPCWSTR)subkey_x64, &hkey) == ERROR_SUCCESS)
{
dwType = REG_SZ;
if (RegQueryValueEx(hkey, (LPCWSTR)"DisplayIcon", 0, &dwType, (BYTE*)buf, &dwBufSize) == ERROR_SUCCESS)
{
cout << "Key Value IS: " << buf << endl;
}
else
{
cout << "Cannot get key value..." << endl << endl;
}
}
else
{
cout << "Cannot open key\n" << endl << endl;
RegCloseKey(HKEY_PERFORMANCE_DATA);
}
なぜそれが鍵を開けられないのか誰かが知っていますか?
(LPCWSTR)は良いアプローチではありませんか?
VisualStudio2010を使用しています