当前位置: 代码迷 >> PB >> pb 连接评价器 接收不到74号消息,该如何处理
  详细解决方案

pb 连接评价器 接收不到74号消息,该如何处理

热度:36   发布时间:2016-04-29 08:47:50.0
pb 连接评价器 接收不到74号消息
other 事件里:
constant long wm_copydata = 74//cact评价器发送回来的评价消息

if message.number = wm_copydata then
  messagebox('','接收到啦')
end if


接口文档里写的消息号是74,为什么我点评价按钮的时候没反应呢?
如果消息号不是74,另外有没有什么办法查出这个评价器给系统的消息号呢?
在线等高人解答!!

------解决方案--------------------
用SPY来检测消息。VC中带的很有用的小工具。
------解决方案--------------------
需要注意消息是发到哪个对象的。
------解决方案--------------------
建议你建一个表,然后在other事件里把消息号插入到这个表中,然后根据这个表中的数据再分析一下
------解决方案--------------------
评价器的文档应该还要告知接收窗口的标题必须设置为什么,否则它就不知道该向哪个窗口发送消息,总不能向所有窗口发 wm_copydata 吧,一则会干扰其它进程的通讯,二则开销也太大。
------解决方案--------------------
看来评价器是以广播方式(置窗口句柄 65535)向所有窗口发送 wm_copydata,果真是不惜代价,换了是我肯定不会这么干!

<0001>0008158e s wm_copydata hwndfrom:(null)pcds:0af0fc3c[wparam:00000000 IParam:0af0fc3c]

表示该窗口已收到 wm_copydata 消息,lparam 中存放着指向 CopyDataStruct 数据块的共享内存地址。

按说 other 事件必然能截获此消息的!如果的确不能,恐怕只有 sybase 才能解释了。
------解决方案--------------------
什么开发环境?
PB version?
system ?
评价器是vc / delphi ?
以前试过
//开发环境:winxp sp3 pro + pb8.04 10501
1.PB程序之间WM_COPYDATA通讯稳定;
2.PB程序使用WM_COPYDATA与非PB第三方程序通讯发送部分要用delphi或者vc写DLL才能稳定工作。
3.PB中所有接收数据与第一次接收数据相同.
  相关解决方案