近期用GDI+来画图,其贴图的方式画出来的图效果很好,特别对刷新问题特别有效。但却似莫名其妙到处有内存泄漏,而且很有规律都是16bytes,如下图所示。而本程序中代码并没有new出内存,难道是GDI+的问题?但GDI+不是不用关注画图资源的释放吗,心里很纳闷,一时没有头绪,只能重新看代码。最后发现了问题,是RectF的Clone()函数出问题了。
RectF* Clone() const
{
return new RectF(X, Y, Width, Height);
}
Clone()函数的源代码,由此可见,每次应调用这个函数,其实都new了一个对象,用完之后一定要用Delete释放。