new und GlobalAlloc



  • Hi,

    ich bin noch am Entdecken der großen weiten Weld des MFC.

    1. BYTE* pBuffer = new BYTE[nSize];

    2. HGLOBAL hGlobal = GlobalAlloc(GMEM_MOVEABLE, nSize);

        1. fordern Speicher an.

    Was ist denn der Unterschied? Kann man auch für 2) folgendes schreiben?
    HGLOBAL hGlobal = new HGLOBAL[nSize];



  • 1. hat das gar nix mit MFC zutun sondern höchstens mit C++ sowie WinAPI
    2. Alle drei von Dir geschriebenen Zuweisungen machen etwas anderes!!!

    Zu 1) legt ein Speicherfeld auf dem lokalen Heap mit nSize Bytes an
    Zu 2) legt ein Speicherfeld auf dem globalen Heap (für alle Windows-Programme zugänglich) mit nSize Bytes an
    Zu 3) legt ein Speicherfeld auf dem lokalen Heap mit nSize HGLOBAL-Datentypen an (HGLOBAL = Handle auf globalen Speicher = 4Byte) -> es werden nSize*4 Bytes reserviert !


Anmelden zum Antworten