(转载)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",似乎觉得这个名字起的很好.

时间: 2024-10-05 06:41:53

(转载)RegSetValueEx设置REG_SZ类型键值时要注意的问题的相关文章

查询、创建、设置注册表键值的示例代码

示例代码将在注册表位置:HKEY_CURRENT_USER\Software\  读写键值 bool LicenseManage::OpenRegKey(HKEY& hRetKey) { if (ERROR_SUCCESS == RegOpenKey(HKEY_CURRENT_USER,"Software", &hRetKey)) { return true; } return false; } bool LicenseManage::CreateRegKey(stri

MYSQL表中设置字段类型为TIMESTAMP时的注意事项

在MYSQL中,TIMESTAMP类型是用来表示日期的,但是和DATETIME不同,不同点就不再这里说明了. 当我们在使用TIMESTAMP类型设置表中的字段时,我们应该要注意一点,首先我们在表中新增一个类型为TIMESTAMP的字段: 如上图所示,系统为类型为TIMESTAMP的tm字段自动创建了默认值CURRENT_TIMESTAMP(系统日期),下面我们看表中的数据,新增的列自动填充了系统日期的值: 下面我们在表中继续新增一个类型为TIMESTAMP类型的字段tm1,然后查看表结构: 如上

解决easyui combobox赋值boolean类型的值时,经常出现的内容显示的value而不是text的bug

版本:EasyUI 1.7.0 在用easyui写项目时,碰到一个combobox的奇葩bug.代码如下: <div> <select class="easyui-combobox" id="edit_sex" name="sex" data-options="label:'性别:', width:300, required:true"> <option value="true"

Oracle存储过程update受外键约束的主键值时完整性冲突解决方案

1.问题背景 虽然在数据库操作中我们并不提倡修改主键,但是确实在实际生活中有这样的业务需求: 表A有主键KA,表B中声明了一个references A(KA)的外键约束,我们需要修改A中某条目KA的值并且更新B中外键约束. 但是DBMS在执行了第一条update后检查完整性会发现冲突:B中条目的外键不存在. 注:我在Oracle database环境下遇到这个问题的,Oracle很蛋疼的不能设置外键为update级连,所以只有人工处理. 2.举例说明 用一个简单的例子说明,数据库中有以下三个表:

jQuery元素属性attr设置多个键值或函数

Js代码   $("Element").attr(name) '取得第一个匹配的属性值,比如$("img").attr("src") $("Element".attr(key,value)") '某一个元素设置属性 $("Element".attr({key:value,key1:value,....})) ‘为某个元素一次性设置多个属性 $("Element").attr(k

[单选题]PDO::ATTR_ERRMODE设置为以下哪个值时,PDO会抛出PDOException?

PDO::ERRMODE_SILENT PDO::ERRMODE_WARNING PDO::ERRMODE_EXCEPTION PDO::errorInfo() 正确答案:

HashMap存储自定义类型键值

原文地址:https://www.cnblogs.com/wulinmiao/p/12150137.html

KVC - 键值编码

[基本概念] 1.键值编码是一个用于间接访问对象属性的机制,使用该机制不需要调用存取方法和变量实例就可访问对象属性. 2.键值编码方法在OC非正式协议(类目)NSKeyValueCoding中被声明,默认的实现方法由NSObject提供. 3.键值编码支持带有对象值的属性,同时也支持纯数值类型和结构.非对象参数和返回类型会被识别并自动封装/解封. [键值访问] 键值编码中的基本调用包括-valueForKey: 和 -setValue:forkey: 这两个方法,它们以字符串的形式向对象发送消息

Redis键值数据类型之字符串

字符串类型 1. 获得当前key="bar"对应value的类型 type bar 2. 字符串类型可以存储任何形式的字符串, 当存储的字符串是整数形式时, Redis提供了一个命令"incr", 让当前键值递增,并返回递增后的值 127.0.0.1:6379> incr num (integer) 1 127.0.0.1:6379> incr num (integer) 2 127.0.0.1:6379> get num "2"