Globallock

Globallock是計算機專用術語

基本介紹

  • 中文名: 函式
  • 外文名:GlobalLock
說明,參數 類型及說明,參數,返回值,備註,

說明

鎖定記憶體中指定的記憶體塊,並返回一個地址值,令其指向記憶體塊的起始處。除非用 GlobalUnlock 函式將記憶體塊解鎖,否則地址會一直保持有效。Windows為每個記憶體對象都維持著一個鎖定計數。對這個函式的每次調用都應有一個對應的 GlobalUnlock 調用返回值Long,如成功,返回記憶體塊的地址;如出錯,或者這是一個已被丟棄的“可丟棄”記憶體塊,則返回零。會設定GetLastError參數表

參數 類型及說明

hMem Long,指定一個全局記憶體塊的句柄
一般情況下我們在編程的時候,給應用程式分配的記憶體都是可以移動的或者是可以丟棄的,這樣能使有限的記憶體資源充分利用,所以,在某一個時候我們分配的那塊記憶體的地址是不確定的,因為他是可以移動的,所以得先鎖定那塊記憶體塊,這兒應用程式需要調用API函式GlobalLock函式來鎖定句柄。如下: lpMem=GlobalLock(hMem); 這樣應用程式才能存取這塊記憶體。
The GlobalLock function locks a global memory object and returns a pointer to the first byte of the object's memory block.
GlobalLock函式將一個全局記憶體對象鎖定,並返回該塊記憶體首位元組指針
Note
The global functions are slower than other memory management functions and do not provide as many features.
Therefore, new applications should use the heap functions. However, the global functions are still used with DDE and the clipboard functions.
注意
全局記憶體管理函式比其他記憶體管理函式慢,並且不能提供更多的特徵。因此,新應用程式應該使用堆函式,同時考慮到兼容性全局函式仍然用於DDE和剪下板函式。
LPVOID GlobalLock(
HGLOBAL hMem // handle to global memory object
);
Parameters
hMem
[in] Handle to the global memory object. This handle is returned by either the GlobalAlloc orGlobalReAlloc
function.

參數

hMem
[輸入參數]全局記憶體對象句柄。該句柄由函式GlobalAlloc或GlobalReAlloc返回。
Return Values
If the function succeeds, the return value is a pointer to the first byte of the memory block.
If the function fails, the return value is NULL. To get extended error information, call GetLastError.

返回值

如果函式執行成功,返回值就是指向記憶體對象首位元組指針,否則返回NULL。調用GetLastError可以得到更多錯誤信息.
Remarks
The internal data structures for each memory object include a lock count that is initially zero. For movable memory objects, GlobalLock increments the count by one, and the GlobalUnlock function decrements the count by one. For each call that a process makes to GlobalLock for an object, it must eventually call GlobalUnlock.
Locked memory will not be moved or discarded, unless the memory object is reallocated by using theGlobalReAllocfunction. The memory block of a locked memory object remains locked until its lock count is decremented to zero, at which time it can be moved or discarded.

備註

記憶體對象的內部數據結構域如鎖記數將會初始化為0。對於可移動記憶體對象,GlobalLock會將計數器加1,而GlobalUnlock函式將計數器減1。對於GlobalLock的每一次調用,都必須相應的調用一次GlobalUnlock函式。除非使用GlobalReAlloc函式對記憶體對象進行重新分配,否則被鎖定的記憶體空間不能夠被移動或釋放。直到計數器為0時被鎖定的記憶體塊才會可以被移動或者釋放。
Memory objects allocated with GMEM_FIXED always have a lock count of zero. For these objects, the value of the returned pointer is equal to the value of the specified handle.
以GMEM_FIXED屬性開闢的記憶體塊空間的計數器始終為0,對於這樣的對象,函式的返回指針值即為該句柄值。
If the specified memory block has been discarded or if the memory block has a zero-byte size, this function returns NULL.
如果指定的記憶體塊已經被釋放或者大小為0位元組,該函式將返回NULL。
Discarded objects always have a lock count of zero.
釋放後的對象的計數器為0。

相關詞條

熱門詞條

聯絡我們