(В линейках ОС Windows NT и 9x не используется)
Функция GlobalLock возвращает указатель на данный объект памяти глобальных данных. Функция GlobalLock наращивает(увеличивает на единицу) счетчик блокировки перемещаемых объектов и фиксирует память. Фиксированная память не будет перемещаться или сбрасывается до тех пор, пока объект памяти не будет перераспределен функцией GlobalReAlloc. Объект остается блокированным (фиксированным) в памяти до тех пор, пока счетчик блокировки не уменьшится до нуля.
void FAR* GlobalLock( HGLOBAL hglb // дескриптор блокированного объекта памяти ); |
hglb
Идентификатор объекта памяти глобальных данных, которые фиксируются.
Возвращаемое значение указывает на первый байт памяти в глобальном объекте, если функция завершается успешно. Оно - NULL, если память объекта была сброшена, или произошла ошибка.
Каждый раз, когда приложение вызывает функцию GlobalLock для объекта, оно должно в конечном счете вызвать и функцию GlobalUnlock для этого объекта.
Эта функция возвратит NULL, если приложение попытается зафиксировать объект памяти размером нуль байтов.
Если функция GlobalLock увеличивает счетчик блокировки объекта, то функция GlobalUnlock уменьшает на 1 счетчик блокировки (фиксации) объекта. Другие функции могут также оказать влияние на подсчет блокировок объекта памяти. Список этих функций, см. в описании функции GetGlobalFlags.
У объектов со сброшенными данными счетчик блокировки (фиксации) всегда равен нулю.
В нижеследующем примере используются функции GlobalAlloc и GlobalLock, чтобы назначить память, а затем вызываются функции GlobalUnlock и GlobalFree, чтобы освободить ее.
HGLOBAL hglb; void FAR* lpvBuffer; hglb = GlobalAlloc(GPTR, 1024); lpvBuffer = GlobalLock(hglb); . . . GlobalUnlock(hglb); GlobalFree(hglb); |
Обзор Устаревшие элементы программирования Windows, GlobalAlloc, GlobalFlags, GlobalFree, GlobalReAlloc, GlobalUnlock
Размещение и совместимость GlobalLock | ||
К | Windows XP | Нет |
л | Windows 2000 Professional | Нет |
и | Windows NT Workstation | Нет |
е | Windows Me | Нет |
н | Windows 98 | Нет |
т | Windows 95 | Нет |
С | Windows 2003 Server | Нет |
е | Windows 2000 Server | Нет |
р | Windows NT Server | Нет |
в | ||
е | ||
р | ||
Используемая библиотека | - | |
Используемая DLL | - | |
Заголовочный файл | ||
- объявлено в | - | |
- включено в | - | |
Unicode | ||
Замечания по платформе | Применяется только в Windows версии 2.x |