Составители:
GlobalFree, LocalFree Освобождает выделенный блок памяти
GlobalHandle, LocalHandle Получает дескриптор выделенного блока памяти
GlobalLock, LocalLock Блокирует выделенный блок памяти
GlobalMemoryStatus Возвращает размеры доступной физ. и вирт. памяти
GlobalRealloc, LocalRealloc Изменяет размер выделенного блока памяти
GlobalSize, LocalSize Возвращает размер выделенного блока памяти
GlobalUnlock, LocalUnlock Отменяет блокировку блока памяти
MoveMemory Перемещает блок памяти
VirtualAlloc Выделяет виртуальную память
VirtualFree Освобождает виртуальную память
ZeroMemory Заполняет блок памяти нулями
В Win16 наиболее часто используются функции:
HGLOBAL GlobalAlloc(UINT uFlags, DWORD dwBytes);
HGLOBAL GlobalRealloc(HGLOBAL hMem, DWORD dwBytes, UINT
uFlags);
HGLOBAL GlobalFree(HGLOBAL hMem);
GlobalAlloc позволяет захватить блок памяти любого типа. Этот тип
задается параметром uFlags. Возможные значения объявлены в виде
символических констант:
GMEM_FIXED - фиксированный блок
GMEM_MOVEABLE - перемещаемый
GMEM_DISCARDABLE - отбрасываемый (только Win16).
Вместе с этими константами может задаваться флаг GMEM_ZEROINIT,
тогда выделенный блок памяти заполняется нулями. Для комбинаций констант
определены свои имена:
GPTR
как GMEM_FIXED | GMEM_ZEROINIT
GHND как GMEM_MOVEABLE | GMEM_ZEROINIT. Остальные
возможные значения см. в файле GlobalAlloc.rtf.
Параметр dwBytes содержит размер запрашиваемого блока в байтах.
Функция возвращает дескриптор для перемещаемого и указатель для
фиксированного блока памяти.
Пример 1.
int *ptr = (int *)GlobalAlloc(GPTR,4096); // Фиксированный, заполненный нулями
// блок, размером 4K
ptr[100] += 10;
GlobalFree(ptr);
int *Ptr = (int *)malloc(4096); // Фиксированный, не инициализированный
блок,
// размером 4K
Ptr[100] = -1;
free(Ptr);
Для работы с перемещаемыми (и отбрасываемыми) блоками нужно
использовать
функции GlobalLock и GlobalUnlock.
GlobalFree, LocalFree Освобождает выделенный блок памяти GlobalHandle, LocalHandle Получает дескриптор выделенного блока памяти GlobalLock, LocalLock Блокирует выделенный блок памяти GlobalMemoryStatus Возвращает размеры доступной физ. и вирт. памяти GlobalRealloc, LocalRealloc Изменяет размер выделенного блока памяти GlobalSize, LocalSize Возвращает размер выделенного блока памяти GlobalUnlock, LocalUnlock Отменяет блокировку блока памяти MoveMemory Перемещает блок памяти VirtualAlloc Выделяет виртуальную память VirtualFree Освобождает виртуальную память ZeroMemory Заполняет блок памяти нулями В Win16 наиболее часто используются функции: HGLOBAL GlobalAlloc(UINT uFlags, DWORD dwBytes); HGLOBAL GlobalRealloc(HGLOBAL hMem, DWORD dwBytes, UINT uFlags); HGLOBAL GlobalFree(HGLOBAL hMem); GlobalAlloc позволяет захватить блок памяти любого типа. Этот тип задается параметром uFlags. Возможные значения объявлены в виде символических констант: GMEM_FIXED - фиксированный блок GMEM_MOVEABLE - перемещаемый GMEM_DISCARDABLE - отбрасываемый (только Win16). Вместе с этими константами может задаваться флаг GMEM_ZEROINIT, тогда выделенный блок памяти заполняется нулями. Для комбинаций констант определены свои имена: GPTR как GMEM_FIXED | GMEM_ZEROINIT GHND как GMEM_MOVEABLE | GMEM_ZEROINIT. Остальные возможные значения см. в файле GlobalAlloc.rtf. Параметр dwBytes содержит размер запрашиваемого блока в байтах. Функция возвращает дескриптор для перемещаемого и указатель для фиксированного блока памяти. Пример 1. int *ptr = (int *)GlobalAlloc(GPTR,4096); // Фиксированный, заполненный нулями // блок, размером 4K ptr[100] += 10; GlobalFree(ptr); int *Ptr = (int *)malloc(4096); // Фиксированный, не инициализированный блок, // размером 4K Ptr[100] = -1; free(Ptr); Для работы с перемещаемыми (и отбрасываемыми) блоками нужно использовать функции GlobalLock и GlobalUnlock.
Страницы
- « первая
- ‹ предыдущая
- …
- 5
- 6
- 7
- 8
- 9
- …
- следующая ›
- последняя »