高分求教枚举注册表的DWORD值,怎么转化为 10进值!

msvbvm60 2003-07-22 08:58:37
代码如下,但是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);

}
...全文
36 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
theone 2003-07-23
  • 打赏
  • 举报
回复
str2.Format("%1d",m_data);
改为
str2.Format("%1d",m_data[0]);
bhw98 2003-07-23
  • 打赏
  • 举报
回复
应是str2.Format("%1d", *(int *)m_data);
bhw98 2003-07-23
  • 打赏
  • 举报
回复
str2.Format("%1d", &(int *)m_data);

2,640

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 硬件/系统
社区管理员
  • 硬件/系统社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧