Witam, w jaki sposób można określić w którym miejscu programu następuje wyciek pamięci? Przeanalizowałem kod mojego programu (trochę sporawy) ale niestety nie mogę nigdzie znaleźć gdzie wyplywa. A to wszystko przy korzystaniu z GDI.
Podczas odrysowania na pewno jest wyciek, ale nie mogę go zlokalizować, oto kod odpowiedzialny za jego odrysowanie:
DC hdcBufor;
HBITMAP hbmBuf, hbmOldBuf;
PAINTSTRUCT ps;
HDC hDC = NULL;
hDC = BeginPaint( m_hWnd, &ps );
hdcBufor = CreateCompatibleDC( hDC );
hbmBuf = CreateCompatibleBitmap( hDC, ps.rcPaint.right, ps.rcPaint.bottom );
hbmOldBuf = ( HBITMAP ) SelectObject( hdcBufor, hbmBuf );
RECT rc = ps.rcPaint;
FillRect(hdcBufor, &rc, ( HBRUSH ) GetStockObject( WHITE_BRUSH ) );
BitBlt ( hDC, 0, 0, ps.rcPaint.right, ps.rcPaint.bottom, hdcBufor, 0, 0, SRCCOPY );
SelectObject( hdcBufor, hbmOldBuf );
DeleteObject ( hbmBuf );
EndPaint( m_hWnd, &ps );
ReleaseDC( m_hWnd, hDC );