Эти две функции позволяют создавать и разрушать частную кучу. Смотрим функцию создания кучи.
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;
}
Загрузить проект | Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем.
Используются технологии uCoz
|