GlobalLock函数锁定全局内存对象,并返回指向对象内存块第一个字节的指针。与锁定的存储器对象相关联的存储器块不能被移动或丢弃。对于使用GMEM_MOVEABLE标志分配的内存对象,该函数会增加与内存对象关联的锁定计数。
LPVOID GlobalLock(
HGLOBAL 【HMEM】 | //全局内存对象的地址 |
); |
参数
【HMEM】
标识全局内存对象。该手柄由GlobalAlloc或GlobalReAlloc功能返回。
返回值
如果函数成功,则返回值是指向内存块第一个字节的指针。
如果函数失败,返回值为NULL。要获取扩展错误信息,请调用GetLastError.
备注
每个存储器对象的内部数据结构包括最初为零的锁定计数。对于可移动存储器对象,GlobalLock将计数递增1,并且GlobalUnlock函数将计数递减1。对于对象的进程对GlobalLock的每个调用,它必须最终调用GlobalUnlock.锁定的内存不会被移动或丢弃,除非通过使用GlobalReAlloc功能重新分配内存对象。锁定的存储器对象的存储块保持锁定,直到其锁定计数递减为零,此时可以移动或丢弃它。
使用GMEM_FIXED标志分配的内存对象总是具有零的锁计数。对于这些对象,返回的指针的值等于指定句柄的值。
如果指定的内存块已被丢弃,或者内存块的大小为零,则该函数返回NULL。
丢弃的对象总是锁定计数为零。
也可以看看