Zitat:
ZeroMemory(@bih, sizeof(BITMAPINFO)); // gewohnheit...
Schaufelt bei mir bei jeden durchlauf 4 MB in den Speicher.
Ohne sind es ein paar K warum versteh ich wieder mal nicht gebe alles frei.
Delphi-Quellcode:
procedure TfrmMain.MonitorAudio;
var
hDibSec : HBITMAP;
BIH : BITMAPINFO;
hDibSecOld : HBITMAP;
begin
ZeroMemory(@bih, sizeof(BITMAPINFO));
With BIH do
begin
BIH.bmiHeader.biSize := SizeOf(BITMAPINFOHEADER);
BIH.bmiHeader.biBitCount := 24;
BIH.bmiHeader.biWidth := 256;
BIH.bmiHeader.biHeight := -64; //' Top Down DIB.
BIH.bmiHeader.biPlanes := 1;
BIH.bmiHeader.biSizeImage := 49152;
end;
hTempDc := CreateCompatibleDC(0);
hDibSec := CreateDIBSection(hTempDc, BIH, 0, pAddr, 0, 0);
hDibSecOld := SelectObject(hTempDc, hDibSec);
DrawData;
SelectObject(hTempDc, hDibSecOld);
DeleteObject(hDibSecOld);
DeleteDC(hTempDc);
end;
kann jemand sehn ob da irgendwas nicht freigegeben wird ?
gruss EMil