您的位置:首页 > 产品设计 > UI/UE

RegEnumValue读取注册表不完整问题

2015-09-07 13:43 375 查看
问题描述:在用RegEnumValue枚举串口资源时,注册表中有多个串口,但是RegEnumValue在读取时,只能读取其中一部分,不能完全枚举所有串口。

原因及解决办法:

Status=RegEnumValue(hKey,dwIndex++,Name,&dwName,NULL,&Type,szPortName,&dwSizeofPortName);

在每次读取后,dwName和dwSizeofPortName的值发生改变,表示读取了多少字符。在下次读取时,若dwName和dwSizeofPortName的值小于实际需要读取的长度时,则读取失败,读取为空。因此需要在每次读取前,对dwName和dwSizeofPortName需要重新赋值。

dwName=MAXBYTE; //MAXBYTE=0xff
dwSizeofPortName=MAXBYTE;
Status=RegEnumValue(hKey,dwIndex++,Name,&dwName,NULL,&Type,szPortName,&dwSizeofPortName);
修正后则能全部读取注册表中的内容。

以上针对注册表中数据类型为REG_SZ格式,其他格式待验证!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息