Освобождение памяти

С этого момента lpBuffer адресует 2048-байтовый буфер. После того как программа закончила работу с буфером, она должна разблокировать и освободить память, чтобы та могла быть использована для будущих объектов. Это всегда делается с помощью следующей пары функций:

GlobalUnlock(hMem); GlobalFree(hMem);

Каждой функции передается дескриптор, возвращаемый Global-А11ос(). С каждым вызовом GlobaILock() счетчик блокирования области памяти увеличивается на единицу. С каждым вызовом GlobalUnlock() счетчик блокирования области уменьшается на единицу.

GlobalFreeO будет в состоянии освободить блок только в том случае, когда счетчик блокировок равен нулю. Таким образом, прежде чем освобождать память, для каждого дескриптора следует вызывать GlobalUnlock() столько раз, сколько вызывалась Gk>balLock().

 

Реклама

Смежные разделы