VC截屏,一段时间后(生成10000个文件后),截图异常,有一个bmp文件全是黑色,然后bmp文件异常大

代码如下:


HDC hscrdc, hmemdc;
HBITMAP hbitmap, holdbitmap;
int x,y,w,h;
x = 200;
y = 200;
w = 300;
h = 300;
hscrdc = CreateDC("display", NULL, NULL, NULL);
hmemdc = CreateCompatibleDC(hscrdc);
hbitmap = CreateCompatibleBitmap(hscrdc, w, h);
holdbitmap = (HBITMAP)SelectObject(hmemdc, hbitmap);
BitBlt(hmemdc, 0, 0, w, h,hscrdc, x, y, SRCCOPY);
hbitmap = (HBITMAP)SelectObject(hmemdc, holdbitmap);
char* buffer = new char[500];
::GetCurrentDirectory(500,buffer);
CString fn;
fn = GetCurrentDateTimeYYYYMMDDHHMMSSMMM();
SaveBitmapToFile(hbitmap, (char*)(LPCTSTR)((CString)buffer + "\\jpg\\" + fn + ".bmp"));
DeleteDC(hscrdc);
DeleteDC(hmemdc);

运行结果文件:

img

你这个new的buffer一直不释放么
另外建议HBITMAP使用完后也及时释放掉。你这个生成图片频率很高

看下你的内存是不是都没了