我已经编写了代码来读取和写入注册表,这在除 win2003 之外的所有操作系统中都可以正常工作。基本上在注册表(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);