Шаг 120 - HeapCreate и HeapDestroy.

www.adept7.kiev.ua
| Форум| Гостевая| Ссылки| Программы| Исходные тексты| Наши партнеры.|
   
| Главная| Рассылки| Услуги| Библиотека| Новости| Авторам| Программистам| Студентам|
delphi c++ assembler
 

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

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
 

Rambler's Top100 Rambler's Top100

©  Adept Design Studio

Используются технологии uCoz