| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 913 人关注过本帖
标题:内存泄露了,有什么没释放吗
取消只看楼主 加入收藏
zhangqi_gsts
Rank: 6Rank: 6
来 自:甘肃天水
等 级:侠之大者
威 望:1
帖 子:227
专家分:457
注 册:2011-3-27
结帖率:87.5%
收藏
已结贴  问题点数:100 回复次数:2 
内存泄露了,有什么没释放吗
HINSTANCE    hInstance = (HINSTANCE)GetWindowLong(paintvariable.hWnd,GWL_HINSTANCE);
    HBITMAP hBitmap = LoadBitmap(hInstance,MAKEINTRESOURCE(paintvariable.ID) );
    HDC     hDC = GetDC(paintvariable.hWnd);
    HDC     hDCmem = CreateCompatibleDC(hDC);
    SelectObject(hDCmem,hBitmap);
    BITMAP    bmp;
    GetObject(hBitmap,sizeof(BITMAP),(LPVOID)&bmp);
    for(int i = 0; i < 4; i++)
    {
        BitBlt(hDC,
            paintvariable.x + block[specifickind].x[i] * BLOCKLENGTH, paintvariable.y + block[specifickind].y[i] * BLOCKLENGTH,
            bmp.bmWidth, bmp.bmHeight, hDCmem, 0, 0, SRCCOPY);
    }
    ReleaseDC(paintvariable.hWnd, hDCmem);
    ReleaseDC(paintvariable.hWnd, hDC);
    DeleteObject(hBitmap);
       这是自定义的在一点处输出一张位图的函数,这个函数中有什么没释放吗,在循环输出时,我打开任务管理器,发现内存消耗不断增大
搜索更多相关主题的帖子: 内存 
2012-08-17 09:50
zhangqi_gsts
Rank: 6Rank: 6
来 自:甘肃天水
等 级:侠之大者
威 望:1
帖 子:227
专家分:457
注 册:2011-3-27
收藏
得分:0 
看了一下,是释放的时候错了,用GetDC获取的设备环境应该用ReleaseDC释放,而用Create获取的设备应该用DeleteDC释放
2012-08-17 12:03
zhangqi_gsts
Rank: 6Rank: 6
来 自:甘肃天水
等 级:侠之大者
威 望:1
帖 子:227
专家分:457
注 册:2011-3-27
收藏
得分:0 
人人有分
2012-08-18 07:50
快速回复:内存泄露了,有什么没释放吗
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.042238 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved