Speicher-Überlauf bei LoadImage
-
Hallo,
ich habe eine globale HBITMAP-Variable, und nutze sie wie folgt:
//globale Variable HBITMAP g_hBmp; //globale Funktion, wird ereignisorientiert aufgerufen //und in ihr der Pfad des Bitmap-Files übergeben void g_LoadImage(CString path) { g_hBmp = (HBITMAP)::LoadImage(NULL, path, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE | LR_CREATEDIBSECTION | LR_DEFAULTSIZE) } //in meiner Dialog-Klasse void MyDialog::EineFunktion() { //irgendwann kommt folgender Aufruf: CBitmap bmp; bmp.Attach( g_hBmp ); //bmp wird manipuliert (neue Farben, Strecken, Stauchen etc.) //Bitmap auf Button setzen ( (CButton *)GetDlgItem(IDC_BUTTON) )->SetBitmap( (HBITMAP)bmp ); }
Das Problem, das ich habe ist: jedesmal wenn ich LoadImage aufrufe, wird mein Speicher größer
Weiss jemand wie ich das umgehe?
-
Was erwartes du? Du erzeugst aus deinem bild eine DIB, der speicherverbrauch muss also größer werden, wo soll er die dib sonst ablegen?
-
Danke CMatt,
jetzt wo du das so sagst...