Tag Archives: DC

GetDC()의 메모리 누수 막기

간단한 예를 들면..



CDC tmpDC;
tmpDC.CreateCompatibleDC(GetDC());
CBitmap tmpBitmap;
tmpBitmap.CreateCompatibleBitmap(GetDC(),100,100);

OnDraw안에서가 아니라

별로로 DC를 얻고자 할때

GetDC()를 많이 쓰는데..;

이렇게 쓰면 잘못된 것입니다.


CDC *pDC=GetDC();

CDC tmpDC;
tmpDC.CreateCompatibleDC(pDC);
CBitmap tmpBitmap;
tmpBitmap.CreateCompatibleBitmap(pDC,100,100);

ReleaseDC(pDC);

이렇게 써야 합니다.

———————————————-
저도 확실한건 모르지만

반복문 속에 GetDC()를 넣고

돌리니 메모리 사용량이 계속 증가만 하더군요..

틀리다면 답글 달아주세요..

(죄송합니다 허접실력으로 이곳에 글을 올려서)


혹시나 메모리 누수때문에.. 밤샘하시는 분들을 위해~



Re: ——————————————————-

GetDC()는 윈도우가 생성되기전에.. 
즉 주로 OnCreate함수 안에서 메모리 DC생성에 사용
CClientDC 는 윈도우가 생성된후에  위에세 생성한 
 메모리DC로 직접 화면에 그릴때 사용하는게 아닌가 합니다..