C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 120 - HeapCreate и HeapDestroy / Win 32 API / Win32 API

Шаг 120 - 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;
}

Загрузить проект | | |
Автор Каев Артем.
[AD]