我的目的是想通过枚举读取到注册表中一个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);//就是这里的输出死活不对,不知道为什么,后面的代码就省略了,望达人指教