win2003 を除くすべての OS で正常に動作するレジストリを読み書きするコードを作成しました。基本的に、レジストリに値を設定した後(RegSetValueExW)、正しく読み取ることができます(RegQueryValueExW)。しかし、regedit を開くと、いくつかのジャンク文字が表示されます。
を使用して開く
RegOpenKeyExW(HKEY_LOCAL_MACHINE, subKey , 0, KEY_WRITE | KEY_WOW64_64KEY, &_regKey);
設定する: (値は wstring です)
::RegSetValueExW(_regKey, key, NULL, REG_MULTI_SZ, reinterpret_cast<const BYTE*>(value.c_str()), static_cast<DWORD>(value.length()*2 + 1));
クエリの場合:
::RegQueryValueExW(regKey, key, NULL, &type, reinterpret_cast<LPBYTE>(&value[0]), &valueLength);