在使用OpenGL編寫基於MFC的OpengGL PPI顯示器的時候,開始總會有內存溢出,一直找不到原因,後來發現是創建了一個HFONT的字體變量,然後字體用完後沒有釋放,原本以爲HFONT類型的變量和int型變量一樣,是一種基本類型,無需手動釋放,後來發現,這是微軟在MFC GDI環境下提供的一種變量,和Cpen一樣,需要做手動釋放,具體代碼如下:
//建立字體
HFONT hFont;
//創建字體
hFont =CreateFont(-16,0,0,0,400,0,0,0,GB2312_CHARSET,0,0,0,FF_MODERN,TEXT("宋體"));
//顯示相應字體的字
XDSetOpenGLText(47,180,"180°",hFont,1.0f,1.0f,0.0f);
//字體用完後一定要主動手動去釋放字體變量
//釋放字體變量,必須釋放,否則會有溢出等問題
DeleteObject(hFont);
Cpen類似也是一樣的,CPen的釋放代碼如下:
//建立CPen
CPenpen(PS_SOLID,1,m_GP_clrFrame);
CPen*pOldPen;
pOldPen = pdc->SelectObject(&pen);
//使用Cpen......
//釋放CPEN
pdc->SelectObject(pOldPen);
pen.DeleteObject();