全局钩子的奇怪问题(只有调试的时候才能挂上)

tuiger2003 2003-03-08 03:39:25
各位高手:
  我做了一个全局钩子,并调试成功。但因为调用的是win32 console application,出来的黑屏窗口比较讨厌,虽然挂上成功了,可我还是想改成win32 application。结果只能是在debug状态下才能挂上,而release下就无法挂上了。
调用dll的过程如下:
static HINSTANCE hinstDLL;
hinstDLL = LoadLibrary((LPCTSTR)DLL_FILE_NAME);
  我输出过hinstDll,每次都是非零值,说明正常,但为什么release下就不行呢?
我清楚全局钩子是每个进程单独拷一个DLL进自己的空间,进程中止,DLL调用数就减一。那为什么win32 console application类型的程序就可以正常执行? 难道是因为其带一个黑屏窗口,全局钩子只能被有窗口的程序挂上么?可随着程序的结束,黑屏窗口也会消失,可为什么DLL并未消失,还能正常执行呢?相同的,我用win32 application程序在debug下可以正常挂上dll,难道是因为有调试窗口的原因,真得搞不懂。
  百思不解,请教大家!我用win32 application程序能否正常挂接全局DLL钩子。
...全文
57 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
tuiger2003 2003-06-05
  • 打赏
  • 举报
回复
我的邮箱是tuiger@371.net 谢谢。
FAICHEN 2003-06-05
  • 打赏
  • 举报
回复
我也正碰上了这事!不过是放到其他机器上无法连上!
我现在把dll作为资源,用到时在转为dll
也不明白为什末在release不行
funcy333 2003-06-05
  • 打赏
  • 举报
回复
用窗口类试一下,不要用win32 application,其实效果是一样的,不过你会拥有窗口句柄,可以挂上钩子,我可以给你提供源代码。
zhoory 2003-03-10
  • 打赏
  • 举报
回复
gz
tuiger2003 2003-03-10
  • 打赏
  • 举报
回复
这和什么钩子有关系么?我的是消息钩子和wnd钩子。

另外,我看到一个全局钩子的例子,也是win32 application,他采用的是create window,但并不显示。这样钩子能挂上。 我也会试一下的。请大家帮忙出出主意。
prettywolf 2003-03-09
  • 打赏
  • 举报
回复
怎么回事呢?十分关注。
tuiger2003 2003-03-09
  • 打赏
  • 举报
回复
如果是我写错了,为啥调试状态下可以正常挂上呢?直接执行就不行?
GoogleGeek 2003-03-09
  • 打赏
  • 举报
回复
你的钩子是钩的什么消息??
rivershan 2003-03-08
  • 打赏
  • 举报
回复
完全可以的啊~
你哪里写错了吧~
tuiger2003 2003-03-08
  • 打赏
  • 举报
回复
见这个帖子,也许说明的更准确一点:

  我做了一个全局钩子DLL,已经成功。但因为调用这个DLL的是win32 console application,其运行时出来的黑屏窗口比较讨厌。虽然调用DLL成功了,可我还是想改成win32 application。结果新程序只能是在debug状态下才能挂上,而release下就无法挂上了。
调用dll的过程如下:
static HINSTANCE hinstDLL;
hinstDLL = LoadLibrary((LPCTSTR)DLL_FILE_NAME);
  我特意输出过hinstDll,每次都是非零值,说明正常,但为什么release下就不行呢?
我清楚全局钩子是每个进程单独拷一个DLL进自己的空间,进程中止,DLL调用数就减一。那为什么win32 console application类型的程序可以正常执行? 难道是因为其比win32 application多带一个黑屏窗口,全局钩子只能被有窗口的程序挂上么?可随着win32 console application程序的结束,黑屏窗口也会消失,为什么DLL并未消失,还能正常执行呢?相同的,我用win32 application程序在debug下可以正常挂上dll,难道是因为有调试窗口的原因,真得搞不懂。
  百思不解,请教大家!我用win32 application程序能否正常挂接全局DLL钩子。

16,471

社区成员

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

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

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