次のコードを実行した後、32ビットプロセスで、データ%ProgramFiles%が自動的に変換されました。
HKEY hSubKey;
DWORD dwState;
RegCreateKeyEx(HKEY_CURRENT_USER, L"TestKey", NULL, NULL,
REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hSubKey, &dwState);
std::wstring data = L"%ProgramFiles%";
RegSetValueEx(hSubKey, L"TestValue", NULL, REG_EXPAND_SZ,
(BYTE*)data.c_str(), (DWORD)(data.size() * sizeof(WCHAR)) + sizeof(WCHAR));
結果
<-なんてこった。誰がそれを拡張しますか?
データを変換したくありません。-しかし、タイプREG_EXPAND_SZを使用する必要があります。
私はどのように行いますか?