wince内存泄露?
我使用evc开发一个应用程序,使用了timer,当timer里面没有任何人为添加的代码的时候,查看程序内存中正在使用的内存,没有变化。当我添加这样两行代码:
CWnd* pWnd = GetDlgItem(IDC_COORD);
CDC* pDC = pWnd->GetDC();
pWnd->ReleaseDC(pDC);
就发现正在使用的内存在增加。这是怎么回事呀?
资源都释放掉了呀!
[解决办法]
你有VS2005么,用这个编译试试看。
很久很久以前,我也遇到类似的问题,
EVC下会出现内存泄露,同样的代码,在VS2005下没有问题。
[解决办法]
传说pWnd的GetDC(); 和 ReleaseDC(pDC); 是有Bug的
可以考虑使用::GetDC() 和 ::ReleaseDC(pDC) 来代替它们
[解决办法]
eVC 很古老的bug了,VS2005 好像没有类似问题了。
CWnd::GetDC CWnd::ReleaseDC 会泄漏4字节。。
解决方法同LS
用HDC代替,::GetDC() ,::ReleaseDC()。