eVC中有这样一个bug:当您使用 CWnd 类版本的 GetDC 方法和 ReleaseDC 方法 BUG: 内存泄漏。 如果打了SP4补丁,此问题是否修复?

wuxianwwwwww   2008-4-2 11:33 楼主
eVC中有这样一个bug:当您使用 CWnd 类版本的 GetDC 方法和 ReleaseDC 方法 BUG: 内存泄漏。 如果打了SP4补丁,此问题是否修复?
参看微软的信息:http://support.microsoft.com/kb/819635/zh-cn

回复评论 (7)

SP4也有说明修复了哪些问题,如果你怀疑的话,就直接用API.
点赞  2008-4-2 12:30
是啊,直接用win32 api八。

在ce下使用mfc还是不太好。
想使用mfc的界面可以考虑用wtl来代替。

点赞  2008-4-2 17:27
试一下DeleteObject函数,可以。
点赞  2008-6-3 10:05
我试了 打了补丁也不行,做好是用api函数
点赞  2009-6-4 14:14
没有修复
点赞  2009-6-4 15:04
这一天都要改代码了,晕得死啊
点赞  2009-6-5 12:39
不要使用 CWnd 类版本 GetDC 方法和 ReleaseDC 方法。 使用 GetDC 函数和 ReleaseDC 函数。

示例代码如下:
        HDC hDC;
       RECT rect;
    ::GetClientRect (m_hWnd, &rect);

    for (int i = 0; i < 1000; i++)
    {
        hDC = ::GetDC (m_hWnd);
        ::DrawText (hDC, L"Testing...", 10, &rect, DT_CENTER);
        ::ReleaseDC (m_hWnd, hDC);
    }

运行此代码,内存泄漏不会发生
点赞  2009-6-5 13:00
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复