使用RegSetValueExA 及 RegSetValueExW写这册表(中文)均出现乱码
向注册表写入中文,在一台机器运行正常,使用RegSetValueExA 及 RegSetValueExW均正常。在另一台机器上,RegSetValueExA 及 RegSetValueExW,都出现乱码,这是怎么回事,哪位大神帮忙解答一下
bool SetRegValue(HKEY root, const LPCSTR regPath, const LPCSTR name, const string strReadRes, DWORD dwAccess)
{
HKEY hKey;
WCHAR szLocation[MAX_PATH] = { 0 };
DWORD dwSize = sizeof(DWORD);
DWORD dwType = REG_SZ;
LONG ret;
ret = RegOpenKeyExA(root, regPath, 0, dwAccess, &hKey);
DWORD len = strReadRes.size();
if (ret == ERROR_SUCCESS) {
if (ERROR_SUCCESS == RegSetValueExA(hKey, name, 0, REG_SZ, (CONST BYTE*)strReadRes.c_str(), len + 1)) {
RegCloseKey(hKey);
return true;
}
}
RegCloseKey(hKey);
return false;
}
bool SetRegValueW(HKEY root, LPCWSTR regPath, LPCWSTR name, const wstring wstrReadRes, DWORD dwAccess)
{
HKEY hKey;
WCHAR szLocation[MAX_PATH] = { 0 };
DWORD dwSize = sizeof(DWORD);
DWORD dwType = REG_SZ;
LONG ret;
ret = RegOpenKeyExW(root, regPath, 0, dwAccess, &hKey);
DWORD len = wstrReadRes.size() * 2;
if (ret == ERROR_SUCCESS) {
if (ERROR_SUCCESS == RegSetValueEx(hKey, name, 0, REG_SZ, (CONST BYTE*)wstrReadRes.c_str(), len + 1)) {
RegCloseKey(hKey);
return true;
}
}
RegCloseKey(hKey);
return false;
}