Speicherproblem mit CreateCompatibleBitmap

MortenV

Mitglied
Hi,
ich möchte aus meiner Anwendung heraus ein im CView angezeigtes Bild in ein IplImage konvertieren. Die Konvertierung läuft auch super, nur bekomme ich Speicherprobleme weil ich ein HBITMAP nicht löschen kann . Ich finde den Fehler einfach nicht.

Code:
 	int x= 0;
 	int y= 0;
 	int W= m_pView->GetBitmapInfo()->bmiHeader.biWidth;
 	int H= m_pView->GetBitmapInfo()->bmiHeader.biHeight;
 
 	CDC* pDC;
 	CDC tDC;
 	HBITMAP hBmp, oBitmap;
 
 	pDC=m_pView->GetDC();
 	tDC.CreateCompatibleDC(pDC);
 
 	hBmp=CreateCompatibleBitmap(pDC->m_hDC, W, H);		    	//
 	oBitmap=(HBITMAP )SelectObject(tDC.m_hDC, hBmp);
 	tDC.BitBlt(0, 0, W, H, pDC, x, y, SRCCOPY);
 
 	SelectObject(tDC.m_hDC, oBitmap);
 	DeleteObject(oBitmap);
 	
  // .. do something with hBmp...  
 
 	SelectObject(pDC->m_hDC, hBmp);
 	DeleteObject(hBmp);
 	ReleaseDC(pDC);
 	DeleteDC(tDC);

Ich habe sicher irgendeinen dummer Fehler beim aufräumen des hBmp-Objektes. Kann jemand helfen ? Vielen Dank..
 
Was genau bedeutet "Speicherprobleme"?
Das Problem liegt wahrscheinlich hier:
Code:
SelectObject(tDC.m_hDC, oBitmap);
DeleteObject(oBitmap);
oBitmap repräsentiert einen Speicherbereich, der von Windows angelegt wurde und den du daher auch nicht löschen darfst.
Abgesehen davon, wenn du das Bitmap erst mit "SelectObject()" auswählst und es gleich anschließend eiskalt killst, kann das nicht gut gehen :-)
 
Zurück