LockBits操作bitmapdata后内存得不到释放

阿拉丁丁 2014-04-06 07:18:53
pDst->LockBits(&rect, ImageLockModeRead, PixelFormat24bppRGB, &bmpData);
BYTE* temp = (bmpData.Stride>0)?((BYTE*)bmpData.Scan0):((BYTE*)bmpData.Scan0+bmpData.Stride*(bmpData.Height-1));
pDst->UnlockBits(&bmpData);

分配的内存不会得于释放。。。一个FOR循环执行这段代码后,软件占用内存50MB。。。
所以就百度找方法解决。说是要指定scan0

BitmapData bmpData;
bmpData.Stride = 0x14c;
bmpData.Scan0 = (void*)new char[0x28 * 0x14c];


Rect rect(0,0,pDst->GetWidth(),pDst->GetHeight());
pDst->LockBits(&rect, ImageLockModeRead | ImageLockModeUserInputBuf, PixelFormat24bppRGB, &bmpData);
BYTE* temp = (bmpData.Stride>0)?((BYTE*)bmpData.Scan0):((BYTE*)bmpData.Scan0+bmpData.Stride*(bmpData.Height-1));
pDst->UnlockBits(&bmpData);
delete[] (bmpData.Scan0);


结果用这种方法。内存还是得不到释放。一样。占用50MB.。。。。求解释。。
...全文
420 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
我喝多了 2014-06-27
  • 打赏
  • 举报
回复
跟踪调试看看
Zerlier 2014-06-17
  • 打赏
  • 举报
回复
你要delete bmpData

19,469

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧