HeapCreate и HeapDestroy

Эти две функции позволяют создавать и разрушать частную кучу. Смотрим функцию создания кучи.

HANDLE HeapCreate
(
DWORD flOptions,// атрибуты
SIZE_T dwInitialSize,// начальный размер
SIZE_T dwMaximumSize// конечный размер
);

Атрибутов всего два:

  • HEAP_GENERATE_EXCEPTIONS - Говорит о том, что в случае ошибки нужно генерировать структурную исключительную ситуацию вместо возврата NULL.
  • HEAP_NO_SERIALIZE - указатель на то, что куча не должна синхронизировать доступ.

При указании максимального размера можно указать 0 что будет говорить о том что максимальный размер будет ограничен только размером виртуальной памяти.

Результат зависит от флага либо исключение, либо NULL.

А вот функция удаления кучи.

BOOL HeapDestroy
(
HANDLE hHeap// указатель на кучу
);

Если выполнение удачно, то будет возвращено ненулевое значение. Смотрим пример создания и удаления кучи.

#include "stdafx.h"
#include "windows.h"
#include "iostream.h"


void main()
{
HANDLE hHeap;// указатель на кучу
hHeap=HeapCreate(0,0x01000,0);// создать
if (hHeap!=NULL)// если создана удачно
{
// Разрушить и сообщить в случае ошибки
if (HeapDestroy(hHeap)==0)
cout << "Error delete Heap" << endl;
}
else
cout << "Error Create Heap" << endl;
}
 
« Предыдущая статья   Следующая статья »