如果调试基于消息的DLL(100分)

  • 主题发起人 主题发起人 tuiger
  • 开始时间 开始时间
T

tuiger

Unregistered / Unconfirmed
GUEST, unregistred user!
各位大侠,我抄了一个HOOKDLL,在窗口有焦点和消失时(WM_SETFOCUS和WM_DESTROY),<br>对消息进行处理,我知道如何从追踪可执行文件进入DLL,但由于消息的处理部分是随机的,<br>尤其是我需要的消息不会时时出现,比如截取有用EDIT的内容,并写盘的动作。所以我<br>现在不知道该如何调试这部分基于消息的程序。请高手指点 :)
 
case Mesg.Msg of<br>&nbsp; WM_LBUTTONDOWN:<br>&nbsp; &nbsp; begin<br>&nbsp; &nbsp; end;<br>&nbsp; WM_SETFOCUS:<br>&nbsp; &nbsp; begin([red]加上断点,在加断点的行上按F5或在左边点鼠标[/red])<br>&nbsp; &nbsp; end;<br>&nbsp; WM_....
 
谢谢,我知道断点的设置方法,可调试的消息是动态的,主程序只是设置钩子和设置钩子<br>过程来处理消息,但钩子过程处理的消息是不定时产生的,运行的时候可能不会发生,这是我头疼的关键。<br>如何截获并调试这个钩子过程呢。
 
消息产生了,你自然会截获得到,<br>不定发生,那你就让他肯定发生嘛,根据hook的消息,自己制造环境产生这种消息就好了<br>这和DLL没关系,<br>你调的时候,也可以现在函数里调,好了在放到DLL中,在同一个程序中,<br>对本程序的消息通过继承之类的得到,在模拟DLL HOOK事的参数,进行调用<br>一般HOOK时作的工作都比较简单,所以小心点,别犯晕,没问题的,<br>我也曾照例子做过,挺没劲,还是自己做点东西才有意思<br><br>
 
你的意思是说,我的DLL里设置钩子的程序可以运行结束。这时钩子已经设好,一旦有需要<br>的消息出现,钩子处理过程会开始运行。但因为我在钩子的处理过程里设置了断点,所以一旦消息发生,DLL调用钩子处理过程,<br>VC就会监视到,并自己启动DLL中钩子处理过程的调试过程?可这时我的调试过程已经结<br>束了呀。 好像不太可能吧,我试一下
 
后退
顶部