VC Spy++的问题
来源:百度知道 编辑:UC知道 时间:2024/06/04 11:54:17
我自己写了个向某程序发送消息的程序,出现错误用spy++查看后发现
正常的程序spy结果如下:
<00001> 000A0C86 S .message:0x8100 (User-defined:WM_USER+32000) wParam:3F0001235 lParam:04FFE288
<0002> 000A0C86 R .message:0x8100 (User-defined:WM_USER+32000) lResult:000000001
我的程序那个0002没有
请问下,这个message 中的S(Sent) R(Return)是什么含义,只出现S,然后程序异常退出的可能原因是什么呢,怎么解决?
是的,我用的SendMessage,但是我看别人发的有返回,没出错,我的没返回前,接收消息的程序就冲突出错,退出来了. 另:接收消息的程序,不是我写的,没法调试
正常的程序spy结果如下:
<00001> 000A0C86 S .message:0x8100 (User-defined:WM_USER+32000) wParam:3F0001235 lParam:04FFE288
<0002> 000A0C86 R .message:0x8100 (User-defined:WM_USER+32000) lResult:000000001
我的程序那个0002没有
请问下,这个message 中的S(Sent) R(Return)是什么含义,只出现S,然后程序异常退出的可能原因是什么呢,怎么解决?
是的,我用的SendMessage,但是我看别人发的有返回,没出错,我的没返回前,接收消息的程序就冲突出错,退出来了. 另:接收消息的程序,不是我写的,没法调试
S代表使用SendMessage函数发送的消息
P就代表PostMessage的消息了
R是代表消息的返回
只出现S程序异常了 说明对方收到了消息 处理的时候出线了异常
比如一个程序接受消息后做除法wParam / lParam
而你发送的时候wParam = 1, lParam = 0
程序就崩溃了(除数为零)
更常见的崩溃情况是内存访问违规
比如消息参数是一个非法的内存地址却被访问
就会崩溃了
你是用SendMessage么?
用PostMessage不用等待消息返回