求教一个关于hook与DLL的问题 我建议你干脆在公共数据段放一个MOUSEHOOKSTRUCT结构,然后在钩子函数中将结构复制,肯定没问题。在消息中传指针的话还要传进程句柄,然后用ReadProcessMemory还有可能,不过那样太麻烦。象你的程序中,指针指向的是不同进程的内存,肯定不行。不知你的导出函数是怎样写的。我今天是回了邮件才见到你的帖子的,还有问题邮件联系吧。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 现在,在公共数据段中已经有了MOUSEHOOKSTRUCT结构,在钩子函数中,我把得到的MOUSEHOOKSTRUCT结构存入公共数据段中,然后再发消息到主程序,主程序去公共数据段中区结构,但发现结构中的数据未更新。看上去好像不同的进程使用不同的公共数据段似的。 哥们!如果上面的代码是你所说的用什么"公用数据段的代码的话",那么你有一个很明显的错误。MouseEvt = *((MOUSEHOOKSTRUCT*)lParam);这条语句有错!你想一想,你其实并没有将数据拷到你的公用数据段中。我也不知道这句话的执行结果是什么。你应该用如下的语句:memcpy(&MouseEvt, lParam, sizeof(MOUSEHOOKSTRUCT));或者是类似的语句。你可以先做一个测试程序试试两条语句的结果。肯定是这里的原因的。 我已经找到错误了。在定义公共数据段时,应该对每个数据变量赋初值,结构也不例外。所以要对 “MOUSEHOOKSTRUCT MouseEvt;”赋初值。至于那个导出函数没有错,原因是主程序调用的是自己的Dll,他们在同一个进程中,所以可以传指针。 十分感谢。 我已经找到错误了。在定义公共数据段时,应该对每个数据变量赋初值,结构也不例外。所以要对 “MOUSEHOOKSTRUCT MouseEvt;”赋初值。 十分感谢。 ResourceView视图不能动 为什么在其他机子运行opencv程序会提示找不到cxcore100.dll? 这个效果用什么控件? 高手请进啊 !!!!!!!!!!!!!!!!!!!! 如何在listCtrl中换行? 怎样使用winpcap 急,关于在vc中调用存储过程的问题???????在线等 请问怎样改变鼠标啊? 关于键盘驱动中读完成例程的一个问题 改变static控件的字体颜色,但是没有成功,望高手指教!谢谢 请教如何打开这样的东东????? 为什么我的问题没人回答?
“MOUSEHOOKSTRUCT MouseEvt;”赋初值。至于那个导出函数没有错,原因是主程序调用的是自己的Dll,他们在同一个进程中,所以可以传指针。
十分感谢。
“MOUSEHOOKSTRUCT MouseEvt;”赋初值。
十分感谢。