GDI內存泄露問題

GDI內存泄露主要是GDI對象沒有釋放造成的,導致資源短缺。在MFC中,GDI對象無非是以下幾種:pen,Brush,bitmap,CDC。

創建這些對象後,最後要釋放。一:CBrush BackgroundBrush(BackgroundColor); 

CBrush *pbrush=pDC->SelectObject(&BackgroundBrush); 以SelectObject形式釋放。或者.DeleteObject()形式釋放。

另外一種是OnCtlColor裏面的HBRUSH的釋放。如果反覆調用,最後內存肯定不夠。最好把畫刷定義爲類成員變量。這樣就不會反覆調用了。

 

 

幾種內存泄露監測工具:

Visual Leak Detector是一款用於Visual C++的免費的內存泄露檢測工具。可以在http://www.codeproject.com/tools/visualleakdetector.asp 

 

boundschecker

 

IBM Rational PurifyPlus

發佈了35 篇原創文章 · 獲贊 4 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章