首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

何时在哪里卸载全局钩子?解决思路

2012-01-29 
何时在哪里卸载全局钩子?我在一MFC扩展dll里创建了全局鼠标钩子(WH_MOUSE类型),然后在共享数据库里,为需要

何时在哪里卸载全局钩子?
我在一MFC扩展dll里创建了全局鼠标钩子(WH_MOUSE类型),然后在共享数据库里,为需要这个钩子的地方做了收用记数,不需要的时候户数器减1,减为0的时候,卸载钩子。

比如A.exe和B.exe都需要这个动态库,如果我启动A,然后再退出,再钩子创建、卸载都正常,也能钩到消息。

如果我启动按A.exe、B.exe这样的顺序,然后再按同样的顺序分别关闭A和B,这时卸载钩子的时候出错(其余都正常),说是非法的挂钩句柄。

换句话说,在B中卸载钩子就出错,在A中创建的钩子,好像只能在A中卸载,可是这样一来,B就钩不到消息了,也失去了全局钩子的意义了!
想问一下,这是为什么?

[解决办法]
你创建的全局钩子有问题吧

热点排行