0
我有一个基于对话框的程序。它有一个我从用户那里获得输入的编辑框。我必须使用REG_SZ以二进制形式(utf-8 HEXA)使用REG_BINARY将输入unicode字符串写入注册表中的两种形式,字符串形式。我怎样才能做到这一点?如何以2种形式(字符串和二进制)向注册表中写入unicode字符串?
我有一个基于对话框的程序。它有一个我从用户那里获得输入的编辑框。我必须使用REG_SZ以二进制形式(utf-8 HEXA)使用REG_BINARY将输入unicode字符串写入注册表中的两种形式,字符串形式。我怎样才能做到这一点?如何以2种形式(字符串和二进制)向注册表中写入unicode字符串?
CString txt;
m_wndEdit.GetWindowText(txt);
HKEY key;
HKEY KeySet = HKEY_CURRENT_USER;
if (ERROR_SUCCESS == RegOpenKeyExW(KeySet,_T("Software\\MyApp"),0,KEY_ALL_ACCESS,&key))
{
if (ERROR_SUCCESS ==
RegSetValueExW(key, _T("MyParamSZ"), 0,REG_SZ, (BYTE*)txt.GetString(), txt.GetLength()))
{
}
if (ERROR_SUCCESS ==
RegSetValueExW(key, _T("MyParamBIN"), 0,REG_BINARY, (BYTE*)txt.GetString(), txt.GetLength() * sizeof(WCHAR)))
{
}
RegCloseKey(key);
}
感谢您的帮助。我仍然有问题。当我将我的unicode字符串写入注册表时,我想以utf-8十六进制的形式编写它,但是您的解决方案保存了hexa unicode。你对这个问题有什么想法吗? – ducva 2010-11-23 03:21:43