CComHeap
수업
이 클래스는 IAtlMemMgr
COM 메모리 할당 함수를 사용하여 구현합니다.
Important
이 클래스와 해당 멤버는 Windows 런타임에서 실행되는 애플리케이션에서 사용할 수 없습니다.
구문
class CComHeap : public IAtlMemMgr
멤버
공용 메서드
이름 | 설명 |
---|---|
CComHeap::Allocate |
메모리 블록을 할당하려면 이 메서드를 호출합니다. |
CComHeap::Free |
이 메서드를 호출하여 이 메모리 관리자가 할당한 메모리 블록을 해제합니다. |
CComHeap::GetSize |
이 메서드를 호출하여 이 메모리 관리자가 할당한 메모리 블록의 할당된 크기를 가져옵니다. |
CComHeap::Reallocate |
이 메모리 관리자에 의해 할당된 메모리를 다시 할당하려면 이 메서드를 호출합니다. |
설명
CComHeap
는 COM 할당 함수(예CoTaskMemAlloc
: , CoTaskMemFree
IMalloc::GetSize
및 CoTaskMemRealloc
)를 사용하여 메모리 할당 함수를 구현합니다. 할당할 수 있는 최대 메모리 양은 (2147483647) 바이트와 같습니다 INT_MAX
.
예시
IAtlMemMgr
에 대한 예를 참조하세요.
상속 계층
IAtlMemMgr
CComHeap
요구 사항
헤더: ATLComMem.h
CComHeap::Allocate
메모리 블록을 할당하려면 이 메서드를 호출합니다.
virtual __declspec(allocator) void* Allocate(size_t nBytes) throw();
매개 변수
nBytes
새 메모리 블록의 요청된 바이트 수입니다.
반환 값
새로 할당된 메모리 블록의 시작 부분에 대한 포인터를 반환합니다.
설명
이 메서드에서 할당한 메모리를 호출 CComHeap::Free
하거나 CComHeap::Reallocate
해제합니다.
를 사용하여 CoTaskMemAlloc
구현됩니다.
CComHeap::Free
이 메서드를 호출하여 이 메모리 관리자가 할당한 메모리 블록을 해제합니다.
virtual void Free(void* p) throw();
매개 변수
p
이 메모리 관리자에 의해 이전에 할당된 메모리에 대한 포인터입니다. NULL은 유효한 값이며 아무 작업도 수행하지 않습니다.
설명
를 사용하여 CoTaskMemFree
구현됩니다.
CComHeap::GetSize
이 메서드를 호출하여 이 메모리 관리자가 할당한 메모리 블록의 할당된 크기를 가져옵니다.
virtual size_t GetSize(void* p) throw();
매개 변수
p
이 메모리 관리자에 의해 이전에 할당된 메모리에 대한 포인터입니다.
반환 값
할당된 메모리 블록의 크기를 바이트 단위로 반환합니다.
설명
를 사용하여 IMalloc::GetSize
구현됩니다.
CComHeap::재할당
이 메모리 관리자에 의해 할당된 메모리를 다시 할당하려면 이 메서드를 호출합니다.
virtual __declspec(allocator) void* Reallocate(void* p, size_t nBytes) throw();
매개 변수
p
이 메모리 관리자에 의해 이전에 할당된 메모리에 대한 포인터입니다.
nBytes
새 메모리 블록의 요청된 바이트 수입니다.
반환 값
새로 할당된 메모리 블록의 시작 부분에 대한 포인터를 반환합니다.
설명
이 메서드에서 할당한 메모리를 해제하려면 호출 CComHeap::Free
합니다.
를 사용하여 CoTaskMemRealloc
구현됩니다.
참고 항목
DynamicConsumer 샘플
클래스 개요
CWin32Heap
클래스
CLocalHeap
클래스
CGlobalHeap
클래스
CCRTHeap
클래스
IAtlMemMgr
클래스