在使用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();