2686|4

78

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

各位帮忙看看这段代码存在的内存泄漏,谢谢啦 [复制链接]

void CRS2USBDlg::OnTimer(UINT nIDEvent)
{
        // TODO: Add your message handler code here and/or call default



        HKEY hKey = HKEY_LOCAL_MACHINE;
        DWORD numSubKey = 0;
        DWORD        i;                                                       
        DWORD   sizeSubKey;                                               
        TCHAR        subKey[255];
        TCHAR szValue[MAX_REG_LENGTH];

        unsigned char keyValue[255];
        DWORD dwType = REG_SZ;
        DWORD cbData = MAX_REG_LENGTH;

        int iVNSCounter = 0;

        memset(keyValue, 0, 255);


       
        switch(nIDEvent)
        {
        case TIMER_USB_STATUS:
               
       
               
                // Operation registry to get info
       
                       
                       
                        RegOpenKeyEx(g_HKEY,
                                L"Drivers\\Active",
                                0,
                                KEY_READ,
                                &hKey);
                       
                       
                        RegQueryInfoKey(hKey,
                                NULL,
                                NULL,
                                NULL,
                                &numSubKey,
                                NULL,
                                NULL,
                                NULL,
                                NULL,
                                NULL,
                                NULL,
                                NULL);
                       
                        if(numSubKey)
                        {
                                for(i=0; i                                 {
                                        subKey[0] = '\0';
                                        sizeSubKey = 255;
                                       
                                        RegEnumKeyEx(hKey,               
                                                i,                       
                                                subKey,       
                                                &sizeSubKey,
                                                NULL,
                                                NULL,
                                                NULL,
                                                NULL);
                                       
                                       
                                        memset(szValue, 0, sizeof(szValue));
                                        wcscpy(szValue, L"Drivers\\Active\\");
                                        wcscat(szValue, subKey);
                                       
                                        if(RegOpenKeyEx(g_HKEY, szValue, 0, KEY_READ, &hKey)==ERROR_SUCCESS)
                                        {
                                               
                                                if(RegQueryValueEx(hKey, TEXT("Key"), NULL, &dwType, keyValue, &cbData)==ERROR_SUCCESS)
                                                {

                                                        SetDlgItemText(IDC_STATIC_TEMP, (LPCTSTR)keyValue);

                                                        CString sTmp;
                                                        GetDlgItemText(IDC_STATIC_TEMP, sTmp);

                                                        CString s1("Drivers\\USB\\ClientDrivers\\Venus_USB");
                                                        if(sTmp.Compare(s1)==0)
                                                        {
                                                                iVNSCounter++;
                                                        }
                                                }
                                               
                                        }
                                       
                                }
                        }
               
                break;
        default:
                break;
        }

最新回复

不是都在另一个帖子里说过了么? 怎么一个帖子发2次,是不是分多没处花,给我吧,^_^ 这句话不是随便冒出来的,楼主是不是把另一个删了,呵呵! RegCloseKey在退出时应该调用.  详情 回复 发表于 2007-7-11 10:33
点赞 关注

回复
举报

83

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
怎么一个帖子发2次,是不是分多没处花,给我吧,^_^
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
没人知道啊
 
 
 

回复

83

帖子

0

TA的资源

一粒金砂(初级)

4
 
reg 为什么没有close,
在第二次RegOpenKeyEx 时,没有关闭第一次的handle
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

5
 
不是都在另一个帖子里说过了么?
怎么一个帖子发2次,是不是分多没处花,给我吧,^_^
这句话不是随便冒出来的,楼主是不是把另一个删了,呵呵!
RegCloseKey在退出时应该调用.
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表