包含drawimage内存泄漏的词条
http://www.itjxue.com 2023-01-26 21:17 来源:未知 点击次数:
MFC内存泄漏了。。请各位帮帮忙看下程序。
内存泄漏一般 是 在释放对象时,没有手动释放 堆 上的数据(即:自己程序中申请的空间)
C++ GDI图像到IStream出现内存泄漏
我重新看了下你的代码,很可能是这一处问题:
GlobalFree(hMem);
pStream-Release();
上面这两句代码需要调换位置,一定要先调用pStream-Release()再调用GlobalFree(),GlobalFree函数将“尝试释放”掉hMem指向的内存,如果你的Release函数没有调用,这块内存的引用计数值仍是大于1的,将无法被GlobalFree成功释放掉。
详情请参考MSDN中对CreateStreamOnHGlobal函数的文档说明,当中有这样一句
Do not free the hGlobal memory handle during the lifetime of the stream object. IStream::Release must be called before freeing the memory handle.
根据msdn的文档,你上述两句顺序是肯定有问题的,所以请你更正一下再做调试。如果执行之后还有问题,请再补充。
MFC 双缓冲内存泄露
首先是内存泄漏还是GDI对象没有释放啊?如果是内存泄漏的话,找new的地方看有没有delete,如果是GDI的话,那就的看申请GDI句柄的地方,最后没有释放。