📄 subject_17682.htm
字号:
<p>
序号:17682 发表者:cmoth 发表日期:2002-10-14 15:57:52
<br>主题:那里导致了内存泄漏??
<br>内容:以下代码:<BR>void CBmpObject::DrawObject(CDC &pDC,long xoffset,long yoffset)<BR>{<BR>//return; <BR> HBITMAP bitmap;<BR> HBITMAP OldBitmap; <BR> CDC MemDC;<BR> MemDC.CreateCompatibleDC(&pDC); <BR> bitmap=(HBITMAP)LoadImage(0,cFileName,IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_CREATEDIBSECTION); <BR> ASSERT(bitmap); <BR> OldBitmap=(HBITMAP)MemDC.SelectObject(bitmap); <BR> pDC.StretchBlt((rRect.left - xoffset) ,(rRect.top -yoffset) ,(rRect.Width()) ,(rRect.Height()),&MemDC,0,0,bmpinfo.bmWidth,bmpinfo.bmHeight,SRCCOPY); <BR> MemDC.SelectObject(OldBitmap); <BR> ReleaseDC(AfxGetApp()->GetMainWnd()->m_hWnd,MemDC.m_hDC);<BR>}<BR><BR>这个函数在OnDraw函数中调用,每次调用就在任务管理其中发现她多占用了大约50K左右的内存,这个函数那里有问题?<BR>
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:徐景周 回复日期:2002-10-14 16:29:25
<br>内容:最后应该用MemDC.DeleteDC()吧
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:cmoth 回复日期:2002-10-14 17:46:51
<br>内容:问题找到了,最后要调用 DeleteObject(bitmap);就对了,谢谢徐兄帮忙。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -