На главную

On-line справка по Win32 API

Написать письмо
БЕСПЛАТНАЯ ежедневная online лотерея! Выигрывай каждый день БЕСПЛАТНО!
Список всех статей A-B-C-D-E-F-G-H-I-J-K-L-M-N-O-P-Q-R-S-T-U-V-W-X-Y-Z | Скачать Вниз

LocalAlloc



The LocalAlloc function allocates the specified number of bytes from the heap. In the linear Win32 API environment, there is no difference between the local heap and the global heap.

HLOCAL LocalAlloc(

UINT uFlags, // allocation attributes
UINT uBytes // number of bytes to allocate
);


Parameters

uFlags

Specifies how to allocate memory. If zero is specified, the default is the LMEM_FIXED flag. Except for the incompatible combinations that are specifically noted, any combination of the following flags can be specified. To indicate whether the function allocates fixed or movable memory, specify one of the first six flags:

Flag Meaning
LMEM_FIXED
Allocates fixed memory. This flag cannot be combined with the LMEM_MOVEABLE or LMEM_DISCARDABLE flag. The return value is a pointer to the memory block. To access the memory, the calling process simply casts the return value to a pointer.
LMEM_MOVEABLE
Allocates movable memory. This flag cannot be combined with the LMEM_FIXED flag. The return value is the handle of the memory object. The handle is a 32-bit quantity that is private to the calling process. To translate the handle into a pointer, use the LocalLock function.
LPTR
Combines the LMEM_FIXED and LMEM_ZEROINIT flags.
LHND
Combines the LMEM_MOVEABLE and LMEM_ZEROINIT flags.
NONZEROLHND
Same as the LMEM_MOVEABLE flag.
NONZEROLPTR
Same as the LMEM_FIXED flag.
LMEM_DISCARDABLE
Allocates discardable memory. This flag cannot be combined with the LMEM_FIXED flag. Some Win32-based applications may ignore this flag.
LMEM_NOCOMPACT
Does not compact or discard memory to satisfy the allocation request.
LMEM_NODISCARD
Does not discard memory to satisfy the allocation request.
LMEM_ZEROINIT
Initializes memory contents to zero.


uBytes

Specifies the number of bytes to allocate. If this parameter is zero and the uFlags parameter specifies the LMEM_MOVEABLE flag, the function returns a handle to a memory object that is marked as discarded.



Return Values

If the function succeeds, the return value is the handle of the newly allocated memory object.
If the function fails, the return value is NULL. To get extended error information, call GetLastError.

Remarks

If the heap does not contain sufficient free space to satisfy the request, LocalAlloc returns NULL.
The GlobalAlloc and LocalAlloc functions are limited to a combined total of 65,536 handles for GMEM_MOVEABLE and LMEM_MOVEABLE memory per process. This limitation does not apply to GMEM_FIXED or LMEM_FIXED memory.
If this function succeeds, it allocates at least the amount requested. If the amount allocated is greater than the amount requested, the process can use the entire amount. To determine the actual number of bytes allocated, use the LocalSize function.

See Also

GlobalAlloc, LocalFree, LocalLock, LocalReAlloc, LocalSize


Пригласи друзей и счет твоего мобильника всегда будет положительным!
Предыдущая статья
 
Сайт Народ.Ру Интернет
Следующая статья
Пригласи друзей и счет твоего мобильника всегда будет положительным!

LocalAlloc



Функция LocalAlloc распределяет определенное количество байтов из кучи. В линейной среде Win32 API, нет различия между локальной кучей и глобальная куча.

HLOCAL LocalAlloc(

UINT uFlags, // РАСПРЕДЕЛЕНИЕ приписывает количество UINT uBytes // байтов, чтобы распределяться
);


Параметры

uFlags

Определяет как, чтобы распределять память. Если нуль определен, невыполнение является флагом LMEM_FIXED. За исключением несовместимых комбинаций, которые особо отмечены, любая комбинация следующего сигнализирует может быть определено. Для того, чтобы указывать распределяет функция фиксированную или подвижную память, определите один из первых шести флагов:

Сигнализируйте Значение LMEM_FIXED
Распределяет фиксированную память. Этот флаг не может быть объединен LMEM_MOVEABLE или флагом LMEM_DISCARDABLE. Обратная величина является указателем блоку памяти. Чтобы иметь доступ к памяти, вызов процесса просто бросает обратную величину на указатель.
LMEM_MOVEABLE
Распределяет подвижную память. Этот флаг не может быть объединен флагом LMEM_FIXED. Обратная величина является ручкой объекта памяти. Ручка является 32- битовым количеством, которое частное на вызове процесса. Для того, чтобы переводиться ручку на указатель, используйте функцию LocalLock.
LPTR
Объединяет LMEM_FIXED и флаги LMEM_ZEROINIT.
LHND
Объединяет LMEM_MOVEABLE и флаги LMEM_ZEROINIT.
NONZEROLHND
Также, как флаг LMEM_MOVEABLE.
NONZEROLPTR
Также, как флаг LMEM_FIXED.
LMEM_DISCARDABLE
Распределяет исключаемую память. Этот флаг не может быть объединен флагом LMEM_FIXED. Некоторые основавшие приложения Win32 может проигнорировать этот флаг.
LMEM_NOCOMPACT
Не уплотняет или отвергает память, чтобы удовлетворять просьбу распределения.
LMEM_NODISCARD
Не отвергает память, чтобы удовлетворять просьбу распределения.
LMEM_ZEROINIT
Инициализирует содержание памяти в нуль.


uBytes

Определяет количество байтов, чтобы распределяться. Если этот параметр является нулем и параметр uFlags определяет флаг LMEM_MOVEABLE, функция возвращает ручку на объект памяти, что обозначен как отвергнуто.



Обратные Величины

Если функция добивается успеха, обратная величина является ручкой вновь размещенного объекта памяти.
Если функция терпит неудачу, обратная величина НЕДЕЙСТВИТЕЛЬНА. Для того, чтобы расширять информацию ошибки, назовите GetLastError.

Замечания

Если куча не содержит достаточное свободное пространство, чтобы удовлетворять запрос, возврат LocalAlloc НЕДЕЙСТВИТЕЛЬНЫЙ.
GlobalAlloc И функции LocalAlloc ограниченные комбинированным в общей сложности 65,536 ручками для GMEM_MOVEABLE и памяти LMEM_MOVEABLE за процесс. Это ограничение не относится к GMEM_FIXED или памяти LMEM_FIXED.
Если эта функция добивается успеха, она распределяет по крайней мере запрошенную сумму. Если размещенная сумма больше, чем сумма запрашивалась, процесс может использовать целую сумму. Для того, чтобы определять фактическое количество байтов распределенных, используйте функцию LocalSize.

Смотри Также

GlobalAlloc, LocalFree, LocalLock, LocalReAlloc, LocalSize


Вверх Version 1.3, Oct 26 2010 © 2007, 2010, mrhx Вверх
 mrhx software  Русский перевод OpenGL  Русский перевод Win32 API
 
Используются технологии uCoz