注册表中REG_DWORD类型数值的输出

我的目的是想通过枚举读取到注册表中一个key的value,当value的值为字符串的时候都能正常读出,当value的值为REG_DWORD类型的时候总是读不对,请大人帮我看看是哪里出了问题?

代码附上:
HKEY hkey;//注册表键值的句柄
DWORD dwIndex=0,Index=0,lpcbname=1000,ret=0,Type=0,namesize;
char *T_name=(char *)malloc(1000);
unsigned char * name=(unsigned char * )malloc(1500);
int i=0;

ret=RegOpenKeyEx(string, key, 0, KEY_ALL_ACCESS, &hkey);

for(i=1;ret==ERROR_SUCCESS;i++,dwIndex++)//遍历子键中的每个值
{
ret=RegEnumValue(hkey,dwIndex,T_name,&lpcbname,NULL,&Type,name,&namesize);
if(Type==REG_SZ)
{
printf("%d.value name:%s\n",i,T_name);
printf(" value message:\"%s\"\n",name);
}
else if(Type==REG_DWORD)
{

printf("%d.value name:%s\n",i,T_name);
printf(" value message:\"%ld\"\n",name);//就是这里的输出死活不对,不知道为什么,后面的代码就省略了,望达人指教

第1个回答  2010-05-28
问题已解决 使用union结构体 大家供学习本回答被提问者采纳
相似回答