gpt4 book ai didi

c++ - RegSetValueEx 未在 unicode 项目构建中设置

转载 作者:行者123 更新时间:2023-11-27 23:27:11 24 4
gpt4 key购买 nike

我正在尝试将数据写入注册表,但它总是写入外语,因为设置值为“MyApp”

CStringA temp(setvalue);//setvalue is CString type
const BYTE* pData = (const BYTE*)(LPCSTR)temp;
lResult = RegSetValueEx(hKey, path, NULL, REG_SZ, (LPBYTE)pData, sizeof(pData));
RegCloseKey(hKey);

if(lResult == ERROR_SUCCESS || lResult == ERROR_MORE_DATA)
return true;
else
return false;

谢谢。

最佳答案

您将 CString 转换为 BYTE* 的方式导致了问题。无需使用 CStringA。

尝试将 CString 转换为 TCHAR。这应该有效

LPTSTR lpszData = new TCHAR[setvalue.GetLength()+1]; // setvalue is CString type...
_tcscpy(lpszData , csTemp);

lResult = RegSetValueEx(hKey, path, NULL, REG_SZ, (LPBYTE)lpszData, setvalue.GetLength()+1);

delete[] lpszData;// don't forget to do this.

关于c++ - RegSetValueEx 未在 unicode 项目构建中设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8470949/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com