开始,我学做了个全盘勾子,要把勾子放在DLL里才能用,还要留个接口,让执行[EXE]来调用该DLL,我想为什么要这么麻烦,不如直接让DLL加载时就自己动注册勾子吧,我就把注册勾子写在DLL的Initialize里,[我用的是MFC规则DLL] 虽然注册是成功了,但不知道为什么就是无效。。
怎么想也想不明白,在网上看了看,搜了搜,原来DLL是没有消息循环的,难道差别就在这,我想通过EXE来调用DLL来开个勾子,可能系统会把消息先通过EXE,再由EXE转发成事件给DLL,这样DLL上一层就有个提供消息的源头,如果直接在DLL里注册,虽然是注册成功了,但DLL本身是不能接收消息的,那当然注册的也无效了,这就是为什么一定要让EXE来调用DLL才生效吧