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.。。。。求解释。。