Wie viel Speicher sollte für die von HBITMAP mit der Funktion GetDIBits empfangenen DIB-Daten zugewiesen werden?
Die Funktion GetDIBits wird im MSDN wie folgt beschrieben:
int GetDIBits(
__in HDC hdc,
__in HBITMAP hbmp,
__in UINT uStartScan,
__in UINT cScanLines,
__out LPVOID lpvBits,
__inout LPBITMAPINFO lpbi,
__in UINT uUsage
);
Der Puffer für den Empfang der Daten lpvBits muss jedoch vor dem Aufruf von GetDIBits zugewiesen werden, da GetDIBits diesen nicht automatisch zuweist.
Die Frage ist, wie viel Speicherplatz sollte für den Empfang der DIB-Daten zugewiesen werden? Angenommen, die HBITMAP hat Breite und Höhe als Bmp_Width&Bmp_Height; und die Bitmap ist 32-bit (RGBA).