다음을 통해 공유


CComHeap 클래스

이 클래스는 IAtlMemMgr COM 메모리 할당 함수를 사용하여 구현합니다.

Important

이 클래스와 해당 멤버는 Windows 런타임에서 실행되는 애플리케이션에서 사용할 수 없습니다.

구문

class CComHeap : public IAtlMemMgr

멤버

공용 메서드

이름 설명
CComHeap::Allocate 메모리 블록을 할당하려면 이 메서드를 호출합니다.
CComHeap::Free 이 메서드를 호출하여 이 메모리 관리자가 할당한 메모리 블록을 해제합니다.
CComHeap::GetSize 이 메서드를 호출하여 이 메모리 관리자가 할당한 메모리 블록의 할당된 크기를 가져옵니다.
CComHeap::Reallocate 이 메모리 관리자에 의해 할당된 메모리를 다시 할당하려면 이 메서드를 호출합니다.

설명

CComHeap는 COM 할당 함수(예CoTaskMemAlloc: , CoTaskMemFreeIMalloc::GetSizeCoTaskMemRealloc)를 사용하여 메모리 할당 함수를 구현합니다. 할당할 수 있는 최대 메모리 양은 (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 클래스