BYTE(unsigned char型如何转换为转换为 char型————关于注册表函数RegEnumValue()的一个参数 注册表函数RegEnumValue()的返回值中,有一个返回值是得到指定键的值。它是BYTE(unsigned char)型的, 将其强制转换为char、CSstring 类型后,好象不行,因为用 MessageBox( )后,显示 (null)是不是BYTE,不能完全转换为 char型,有数据丢失??? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不是不能转化为char,而是有的不能当字符串用。比如byte 0,转成字符串就是字符串的结束了。 哦,是我搞错了。 之所以像我说的显示null,是因为RegenumValue根本就没有成功,所以才null。但再请问: 为什么用RegenumValue枚举键值时,有的简直可以返回,有的不行??比如: SystemTray “SysTray.Exe” internat.exe “internat.exe”利用regenumvalue() 枚举时,可以返回“SysTray.Exe”但不能返回“internat.exe”(而是null)请问 RegenumValue存在一个非常容易犯的错误,就是缓冲区的长度问题,你每次Enum之后,那个缓冲区长度就变了,传给下一次Enum的时候缓冲区长度就是上一次Enum的结果。比如你的缓冲区长度开始为260,然后有两个:“SysTray.Exe”“internat.exe”第一次Enum返回后,缓冲区长度就变为“SysTray.Exe”的长度11了,所以你第二次Enum取“internat.exe”的时候最多就能取到“internat.ex”,因为缓冲区长度不够。所以应该每次Enum都重新设置缓冲区长度。 idAnts(你才无聊呢) 谢谢你了,你说的很对! vc/mfc Winsock聊天室程序中服务器接受消息顺序的问题 一个关于CSocket线程的问题,请大家帮帮忙 控件背景色显示不出来 如何正确输出UBYTE类型的内容 求救:封装Dll函数功能为什么不能调用SetDlgItemText 第一次遇到,不可思议的问题 如何输出到BUILD窗口的内容自动的保存到我制定的某个文本文件中??? 简单的问题 分数不算低吧? 如何把树的信息写在文件中 怎麽將DOS命令Windows化 学过C与JAVA,但编程基础不好,现在公司实习要在学VC,请问应该怎么学呢? CListCtrl显示问题?
internat.exe “internat.exe”利用regenumvalue() 枚举时,可以返回“SysTray.Exe”但不能返回“internat.exe”(而是null)请问
“SysTray.Exe”
“internat.exe”第一次Enum返回后,缓冲区长度就变为“SysTray.Exe”的长度11了,所以你第二次Enum取“internat.exe”的时候最多就能取到“internat.ex”,因为缓冲区长度不够。
所以应该每次Enum都重新设置缓冲区长度。