Classe CGlobalHeap
Questa classe implementa IAtlMemMgr usando le funzioni heap globali Win32.
Importante
Questa classe e i relativi membri non possono essere usati nelle applicazioni eseguite in Windows Runtime.
Sintassi
class CGlobalHeap : public IAtlMemMgr
Membri
Metodi pubblici
Nome | Descrizione |
---|---|
CGlobalHeap::Allocate | Chiamare questo metodo per allocare un blocco di memoria. |
CGlobalHeap::Free | Chiamare questo metodo per liberare un blocco di memoria allocato da questo gestore di memoria. |
CGlobalHeap::GetSize | Chiamare questo metodo per ottenere le dimensioni allocate di un blocco di memoria allocato da questo gestore di memoria. |
CGlobalHeap::Reallocate | Chiamare questo metodo per riallocare la memoria allocata da questo gestore di memoria. |
Osservazioni:
CGlobalHeap
implementa funzioni di allocazione della memoria usando le funzioni heap globali Win32.
Nota
Le funzioni heap globali sono più lente rispetto ad altre funzioni di gestione della memoria e non forniscono tutte le funzionalità. Pertanto, le nuove applicazioni devono usare le funzioni heap. Questi sono disponibili nella classe CWin32Heap . Le funzioni globali vengono ancora usate da DDE e dalle funzioni degli Appunti.
Esempio
Vedere l'esempio per IAtlMemMgr.
Gerarchia di ereditarietà
IAtlMemMgr
CGlobalHeap
Requisiti
Intestazione: atlmem.h
CGlobalHeap::Allocate
Chiamare questo metodo per allocare un blocco di memoria.
virtual __declspec(allocator) void* Allocate(size_t nBytes) throw();
Parametri
nBytes
Numero di byte necessari nel nuovo blocco di memoria.
Valore restituito
Restituisce un puntatore all'inizio del blocco di memoria allocata.
Osservazioni:
Chiamare CGlobalHeap::Free o CGlobalHeap::Reallocate per liberare la memoria allocata da questo metodo.
Implementato usando GlobalAlloc con un parametro flag di GMEM_FIXED.
CGlobalHeap::Free
Chiamare questo metodo per liberare un blocco di memoria allocato da questo gestore di memoria.
virtual void Free(void* p) throw();
Parametri
p
Puntatore alla memoria precedentemente allocata dal gestore di memoria. NULL è un valore valido e non esegue alcuna operazione.
Osservazioni:
Implementato tramite GlobalFree.
CGlobalHeap::GetSize
Chiamare questo metodo per ottenere le dimensioni allocate di un blocco di memoria allocato da questo gestore di memoria.
virtual size_t GetSize(void* p) throw();
Parametri
p
Puntatore alla memoria precedentemente allocata dal gestore di memoria.
Valore restituito
Restituisce le dimensioni del blocco di memoria allocato in byte.
Osservazioni:
Implementato tramite GlobalSize.
CGlobalHeap::Reallocate
Chiamare questo metodo per riallocare la memoria allocata da questo gestore di memoria.
virtual __declspec(allocator) void* Reallocate(void* p, size_t nBytes) throw();
Parametri
p
Puntatore alla memoria precedentemente allocata dal gestore di memoria.
nBytes
Numero di byte necessari nel nuovo blocco di memoria.
Valore restituito
Restituisce un puntatore all'inizio del blocco di memoria allocata.
Osservazioni:
Chiamare CGlobalHeap::Free per liberare la memoria allocata da questo metodo.
Implementato tramite GlobalReAlloc.
Vedi anche
Cenni preliminari sulla classe
Classe CComHeap
Classe CWin32Heap
Classe CLocalHeap
Classe CCRTHeap
Classe IAtlMemMgr