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,但是我看别人发的有返回,没出错,我的没返回前,接收消息的程序就冲突出错,退出来了. 另:接收消息的程序,不是我写的,没法调试

S代表使用SendMessage函数发送的消息

P就代表PostMessage的消息了

R是代表消息的返回

只出现S程序异常了 说明对方收到了消息 处理的时候出线了异常

比如一个程序接受消息后做除法wParam / lParam

而你发送的时候wParam = 1, lParam = 0

程序就崩溃了(除数为零)

更常见的崩溃情况是内存访问违规

比如消息参数是一个非法的内存地址却被访问

就会崩溃了

你是用SendMessage么?

用PostMessage不用等待消息返回