高分求教枚举注册表的DWORD值,怎么转化为 10进值!
代码如下,但是LISTCTRL里显示的值却是 124XXX ,注册表里实际值却是1或者2,不知道那里错了。。。
///////////////////////////////////////////////////////////////
void CClearDLLDlg::GetShareDll()
{
//获得共享DLL的使用关联次数
m_list.DeleteAllItems();
char m_key[255]="SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\SharedDlls";
HKEY m_hkey;
char m_name[200],m_data[5];
DWORD m_namelen=200,m_datalen=5,m_index=0;
DWORD m_attr=REG_DWORD;
if(RegOpenKeyEx(HKEY_LOCAL_MACHINE,m_key,0,KEY_ALL_ACCESS,&m_hkey)==ERROR_SUCCESS)
{
while(RegEnumValue(m_hkey,m_index,m_name,&m_namelen,0,&m_attr,(LPBYTE)m_data,&m_datalen)!=ERROR_NO_MORE_ITEMS)
{
m_index++;
m_list.InsertItem(0,m_name);//显示枚举到的键值到 LISTCTRL里
CString str2;//转换枚举到的VALUE(类型为DWORD)为 INT型
str2.Format("%1d",m_data);
m_list.SetItemText(0,1,str2); //显示
memset(m_name,0,200);// 复位变量,以便重新枚举
m_namelen=200;
memset(m_data,0,5);
m_datalen=5;
}
}
RegCloseKey(m_hkey);
}