300分请请高手解惑 问题已结 (300分)

  • 主题发起人 主题发起人 dira
  • 开始时间 开始时间
消息和事件是不同的,
消息是操作系统级别上的回调,

而事件是面想对象级别的回调

说白了,就是个回调,
在哪里都行的,
 
to xuesijun:
你讲的Com或DCOM都是指用户主动调用的情况,注意是“用户主动”,不是“Com主动”调用用户定义的事件函数,请举一个“Com主动”调用用户定义的事件函数的例子,就像鼠标点击Button,系统调用用户写的OnClick函数一样。(注意:事件连接点接口不算,如果你举事件连接点接口例子,就说明你已认为这种Com接口和普通用户调用的Com接口不一样了。)
再请指教!
 
to TYZhang:
你可以自己写一个COM组件,定义一个函数指针属性。
在客户端给这个函数指针付值,在组件内调用这个函数。

为确保试验成功,最好实现一个进程内组件。
 
to xuesijun:
如果我的com为分布式com即DCOM,A机的函数指针传到B机,那么调用函数指针指向的函数好像不大对吧。
三请指教!
 
这个实现实际上是由一个组件的[red]影子[/red]存在与客户端的进程内存里面,是他在调用这个事件的指针。这个影子吗其实是一个[red]dll[/red],
[red]在跨进程的组件调用时的叫法是“代理”[/red]。
 
to xuesijun:
普通dcom调用过程是这样的,
客户->调用com接口->com代理->Com宿主机器->Com服务->调用结果->客户机->com代理->调用接口->调用客户。

那么由com服务主动触发的客户事件如何触发?
“你可以自己写一个COM组件,定义一个函数指针属性。在客户端给这个函数指针付值,在组件内调用这个函数。”这个函数指针保存在哪里,在com服务中,还是在代理中?可能的触发途经?

四请指教!
 
对于客户来讲,所有的组件都是在他自己的进程空间之内。

那么你人为你的问题该如何回答?
你可以自己想象一下:)
 
to xuesijun:
算了,这个问题讨论就到此为止吧,再讨论下去就变成我和你叫劲顶牛了,如果到那一步,就搞的大家都不愉快。

不过就你我的讨论,我相信楼主应该能得到他所要想知道的了,别的人看了帖子也应该对com有个初步了解了,到底谁说得对谁说得错了,我想已经不太重要了,就让他仁者见仁,智者见智吧。

to dira:
楼主,你这个帖子应该结了,再讨论下去好像意义不大了。
 
谢谢各位大虾,
待我理解之后散分,请原谅我想知道谁更贴切一些
 
to dira:
你就不要再顶了,你想知道的更贴切一些,你可以这样想一下:
如果windows中使用普通com就可以解决一切问题,有必要再专门设计连接点的com吗?所谓存在就是合理,既然连接点的技术还在被使用,没有被淘汰,那就证明还有他使用的地方,还有他的用武之地,那就证明还没有别的技术可以取代他或者说很容易的取代它的地位。
 
To TYZhang
你们真是太让我感动了,再次感谢像你们这样的大富翁们,现正在写一个例子,准备把这两天看的内容总结出来,明天结帖
 
示例在我的富翁笔记里,
CLIENT里有Project1.exe和 Project2.exe为两个客户端,可以同时运行看看,运行前先运行一下SERVER里的Project1.exe
例子写得比较粗糙,请大家指正,
据我目前所掌握的知识我觉得xuesijun更贴切一些,再次感谢DFW的富翁们
 
多人接受答案了。
 
下载地址http://www.delphibbs.com/keylift/images/u104407/ClockEvent.rar
 

Similar threads

后退
顶部