Classe CGlobalHeap
Essa classe implementa IAtlMemMgr usando as funções de heap globais do Win32.
Importante
Essa classe e os respectivos membros não podem ser usados em aplicativos executados no Windows Runtime.
Sintaxe
class CGlobalHeap : public IAtlMemMgr
Membros
Métodos públicos
Nome | Descrição |
---|---|
CGlobalHeap::Allocate | Chame esse método para alocar um bloco de memória. |
CGlobalHeap::Free | Chame esse método para liberar um bloco de memória alocado por esse gerenciador de memória. |
CGlobalHeap::GetSize | Chame esse método para ter o tamanho alocado de um bloco de memória alocado por esse gerenciador de memória. |
CGlobalHeap::Reallocate | Chame esse método para realocar a memória alocada por esse gerenciador de memória. |
Comentários
CGlobalHeap
implementa funções de alocação de memória usando as funções de heap globais do Win32.
Observação
As funções de heap globais são mais lentas do que outras funções de gerenciamento de memória e não fornecem tantos recursos. Portanto, novos aplicativos devem usar as funções de heap. Eles estão disponíveis na classe CWin32Heap. As funções globais ainda são usadas pelo DDE e pelas funções da área de transferência.
Exemplo
Consulte o exemplo de IAtlMemMgr.
Hierarquia de herança
IAtlMemMgr
CGlobalHeap
Requisitos
Cabeçalho: atlmem.h
CGlobalHeap::Allocate
Chame esse método para alocar um bloco de memória.
virtual __declspec(allocator) void* Allocate(size_t nBytes) throw();
Parâmetros
nBytes
O número solicitado de bytes no novo bloco de memória.
Valor de retorno
Retorna um ponteiro para o início do bloco de memória recém-alocado.
Comentários
Chame CGlobalHeap::Free ou CGlobalHeap::Reallocate para liberar a memória alocada por esse método.
Implementado usando GlobalAlloc com um parâmetro de sinalizador de GMEM_FIXED.
CGlobalHeap::Free
Chame esse método para liberar um bloco de memória alocado por esse gerenciador de memória.
virtual void Free(void* p) throw();
Parâmetros
p
Ponteiro para a memória alocada anteriormente por esse gerenciador de memória. NULL é um valor válido e não faz nada.
Comentários
Implementado usando GlobalFree.
CGlobalHeap::GetSize
Chame esse método para ter o tamanho alocado de um bloco de memória alocado por esse gerenciador de memória.
virtual size_t GetSize(void* p) throw();
Parâmetros
p
Ponteiro para a memória alocada anteriormente por esse gerenciador de memória.
Valor de retorno
Retorna o tamanho do bloco de memória alocado em bytes.
Comentários
Implementado usando GlobalSize.
CGlobalHeap::Reallocate
Chame esse método para realocar a memória alocada por esse gerenciador de memória.
virtual __declspec(allocator) void* Reallocate(void* p, size_t nBytes) throw();
Parâmetros
p
Ponteiro para a memória alocada anteriormente por esse gerenciador de memória.
nBytes
O número solicitado de bytes no novo bloco de memória.
Valor de retorno
Retorna um ponteiro para o início do bloco de memória recém-alocado.
Comentários
Chame CGlobalHeap::Free para liberar a memória alocada por esse método.
Implementado usando GlobalReAlloc.
Confira também
Visão geral da aula
Classe CComHeap
Classe CWin32Heap
Classe CLocalHeap
Classe de CCRTHeap
Classe IAtlMemMgr