Поделиться через


CWin32Heap::CWin32Heap

Конструктор.

CWin32Heap( ) throw( ); 
CWin32Heap( 
   HANDLE hHeap  
) throw( ); 
CWin32Heap( 
   DWORD dwFlags, 
   size_t nInitialSize, 
   size_t nMaxSize = 0  
);

Параметры

  • hHeap
    Существующий объект кучи.

  • dwFlags
    Флаги, используемые при создании кучи.

  • nInitialSize
    Начальный размер кучи.

  • nMaxSize
    Максимальный размер кучи.

Заметки

Перед выделением памяти необходимо предоставить объект CWin32Heap с действительным дескриптором кучи. Для этого проще всего использовать кучу процесса:

CWin32Heap MyHeap(GetProcessHeap());   

Также можно указать в конструкторе дескриптор существующей кучи; в этом случае новый объект не становится владельцем кучи. После удаления объекта CWin32Heap исходный дескриптор кучи будет по-прежнему действителен.

Существующую кучу можно также присоединить к новому объекту с помощью CWin32Heap::Attach.

Если куча требуется в ситуации, когда все операции выполняются из единственного потока, лучше всего создать объект следующим образом:

CWin32Heap MyHeap(HEAP_NO_SERIALIZE, SomeInitialSize);   

Параметр HEAP_NO_SERIALIZE указывает, что когда функции кучи выделяют и освобождают память, взаимное исключение не используется (с соответствующим увеличением производительности).

Третий параметр по умолчанию равен 0, что обеспечивает рост размера кучи по мере необходимости. Объемы памяти и флаги рассматриваются в описании функции HeapCreate.

Требования

Заголовок: atlmem.h

См. также

Другие ресурсы

HeapCreate