王朝百科
分享
 
 
 

Globallock

王朝百科·作者佚名  2010-04-22  
宽屏版  字体: |||超大  

说明:锁定内存中指定的内存块,并返回一个地址值,令其指向内存块的起始处。除非用 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 or GlobalReAlloc

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 the GlobalReAlloc function. 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。

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
如何用java替换看不见的字符比如零宽空格​十六进制U+200B
 干货   2023-09-10
网页字号不能单数吗,网页字体大小为什么一般都是偶数
 干货   2023-09-06
java.lang.ArrayIndexOutOfBoundsException: 4096
 干货   2023-09-06
Noto Sans CJK SC字体下载地址
 干货   2023-08-30
window.navigator和navigator的区别是什么?
 干货   2023-08-23
js获取referer、useragent、浏览器语言
 干货   2023-08-23
oscache遇到404时会不会缓存?
 干货   2023-08-23
linux下用rm -rf *删除大量文件太慢怎么解决?
 干货   2023-08-08
刀郎新歌破世界纪录!
 娱乐   2023-08-01
js实现放大缩小页面
 干货   2023-07-31
生成式人工智能服务管理暂行办法
 百态   2023-07-31
英语学习:过去完成时The Past Perfect Tense举例说明
 干货   2023-07-31
Mysql常用sql命令语句整理
 干货   2023-07-30
科学家复活了46000年前的虫子
 探索   2023-07-29
英语学习:过去进行时The Past Continuous Tense举例说明
 干货   2023-07-28
meta name="applicable-device"告知页面适合哪种终端设备:PC端、移动端还是自适应
 干货   2023-07-28
只用css如何实现打字机特效?
 百态   2023-07-15
css怎么实现上下滚动
 干货   2023-06-28
canvas怎么画一个三角形?
 干货   2023-06-28
canvas怎么画一个椭圆形?
 干货   2023-06-28
canvas怎么画一个圆形?
 干货   2023-06-28
canvas怎么画一个正方形?
 干货   2023-06-28
中国河南省郑州市金水区蜘蛛爬虫ip大全
 干货   2023-06-22
javascript简易动态时间代码
 干货   2023-06-20
感谢员工的付出和激励的话怎么说?
 干货   2023-06-18
 
>>返回首页<<
 
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
© 2005- 王朝网络 版权所有