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 Win32 请教一个图像增强与分割的问题。 帮忙找些资料 程序死掉,但是系统会弹出一个对话框.如何避免这个对话框的弹出 有谁知道串口接收数据的机制吗 如何实现像VC中工程向导那样,点击下一步到下一个对话框,前面一个不见了,点击上一步又回到上一个对话框? vc6.0 可以在 win xp 中运行吗? 在那下载??? 为什么在VC2005中报错:error C2039: “SetOutput”: 不是“CMscomm1”的成员 这句插入语句哪里错了? 这里速度有点慢 学过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都重新设置缓冲区长度。