lalalaking
2021-09-03 08:41
采纳率: 100%
浏览 41

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

  • 收藏

2条回答 默认 最新

  • CSDN专家-link 2021-09-03 08:48
    已采纳

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

    打赏 评论
  • SoftwareTeacher 2021-09-03 08:49

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

    打赏 评论

相关推荐 更多相似问题