
首先我们介绍GlobalAlloc函数。
调用GlobalAlloc函数分配内存,该函数会返回分配到的内存的句柄。
它返回的不是一个地址,而是一个句柄。
GlobalAlloc申请的内存有两种,一种是GAME_FIXED,一种是GAME_MOVABLE。两者的区别在于GAME_MOVABLE类型的内存是可移动的,比如此时堆里有好几块小内存,当再申请一块大内存时,操作系统会移动GAME_MOVABLE类型的内存以合并出来一块大内存。正因为GAME_MOVABLE是可移动的,所以要用句柄表示,不能用内存地址标识。对于GAME_FIXED类型的内存,该函数返回回来的句柄就是内存指针,可以直接当内存指针使用。
|
|
在我们使用GlobalAlloc申请到一块GAME_MOVABLE内存之后,如果我们想往这块内存中写入数据,那就必须先锁定这块内存。内存锁定函数是GlobalLock,返回一个地址指针,接受一个内存句柄作为参数。在写内存完成后还是GlobalUnlock这块内存。
|
|




近期评论