首页 > 代码库 > (转载)RegSetValueEx设置REG_SZ类型键值时要注意的问题
(转载)RegSetValueEx设置REG_SZ类型键值时要注意的问题
REG_SZ REG_SZ
在注册表中,REG_SZ,是一种字符串类型,代表一个简单的文本字符串,是最常见的一种数据类型。
其中“SZ”是“String Zero”的缩写,匈牙利命名法,表示null结尾的字符串变量。
注:REG_SZ型注册表值项没有长度限制。
原文出处: http://blog.csdn.net/jun_01/archive/2005/07/05/414959.aspx
假设szValue是一个TCHAR[] .
用以下语句,看起来很正常,但实际却有问题. 数据读取出来后后边有很多乱码.
RegSetValueEx(hKey, _T("Open"), 0, REG_SZ, (BYTE *)szValue, _tcslen(szValue) * sizeof(TCHAR) );
原来是注册表中存字符串数据也得带着那个0;
所以正确做法应该这样:
RegSetValueEx(hKey, _T("Open"), 0, REG_SZ, (BYTE *)szValue, (_tcslen(szValue) + 1) * sizeof(TCHAR));
这时候再看REG_SZ中的"SZ",似乎觉得这个名字起的很好.
(转载)RegSetValueEx设置REG_SZ类型键值时要注意的问题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。