我使用GDI+进行画图,贴图都是在一个函数里面。因为刷新原因要不停的调用该函数。
此时问题出现了,资源管理器里面显示程序占用的内存在不停的增长,我跟到程序里面去看
m_pImageFrame = Image::FromFile(L"Skin\\picture.png");每运行一次类似的语句就会增加内存
在此函数的最后我使用了delete m_pImageFrame;但是内存仍然没有释放。程序占用内存仍然在不停的增长
各位高手帮帮忙,在此谢谢了!
此时问题出现了,资源管理器里面显示程序占用的内存在不停的增长,我跟到程序里面去看
m_pImageFrame = Image::FromFile(L"Skin\\picture.png");每运行一次类似的语句就会增加内存
在此函数的最后我使用了delete m_pImageFrame;但是内存仍然没有释放。程序占用内存仍然在不停的增长
各位高手帮帮忙,在此谢谢了!
建议使用auto_ptr之类的进行管理
delete m_pImageLoad;
delete m_pImageFrameBeafore;
delete m_pImageFrameBack;
delete m_pImagePhoto;
graph.ReleaseHDC(m_hdcMemory);
::ReleaseDC(m_hWnd,hdcScreen);
DeleteDC(hdcScreen);
hdcScreen=NULL;
::ReleaseDC(m_hWnd,hdcTemp);
DeleteDC(hdcTemp);
hdcTemp=NULL;
DeleteObject(hBitMap);
DeleteDC(m_hdcMemory);
m_hdcMemory=NULL;全部释放了
你的程序你认为释放了,但是你确定释放成功吗?DeleteObject(hBitMap)这句就有可能失败
1,在onpaint最后参考4楼办法,不可全用上。
2,可在OnInitDialog创建dc,窗口销毁时才释放。避免经常创建和释放,提高效能
Image::FromFile
This method returns a pointer to the new Image object.