关于globallock和GlobalUnlock的系列问题

wangyaoxing 2004-04-30 04:34:14
我在做一个图像压缩方面的程序时,遇到这样一个问题:
假设整个压缩过程分为三个部分:
1。得到bitmap的dib句柄
2。对它进行灰度级的统计并编码
3。将编码写入文件,实现压缩
但是,有个问题:
在得到句柄后,我要对他进行操作,首先要对他globallock,但问题是我什么时候
将他解锁globalunlock,我原来是将三个过程写成一个函数,开头加个锁,最后解锁就完了,但现在分成三个或者更多的函数来实现,难道我要在每个函数开头加锁,在函数退出时解锁吗?还是在要对文件进行操作的时候加锁解锁
glpbi = (LPBYTE)GlobalLock(hdib);
::GlobalUnlock((HGLOBAL) hdib);
就是这两句,他们放的时机是怎样的
...全文
175 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
nik_Amis 2004-04-30
  • 打赏
  • 举报
回复
up
ringphone 2004-04-30
  • 打赏
  • 举报
回复
你可以用::GlobalAlloc(GMEM_FIXED,size),这样返回的句柄可以直接用,不用GlobalLock和GlobalUnlock,最后GlobalFree就行了。
whoo 2004-04-30
  • 打赏
  • 举报
回复
使用前lock, 用完了unlock。

从效率和完整性来考虑的话,最好是 只lock / unlock一次。

即在对hdib进行一些列处理前lock, 所有的处理结束后unlock。

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧