Wim*_*ink 4 delphi com delphi-2007 interprocess
这是我的另一个Q的变体.我有两个应用程序,X和Y.他们必须在它们之间共享一个COM对象.X将向此对象发送数据,Y将响应此应用程序发送的事件.在任何时候,X或Y都可能被终止,但单身人士需要保持活着,直到两个申请被终止.
应该可以通过这种方式创建一个单独的COM对象,但是如果X首先启动并创建它,Y然后启动并使用它,然后X停止并...单身人士会怎么样?
无论如何,有没有人用Delphi试过这个?
我想你错过了COM的核心要点.COM只是一般IPC的一个步骤,我的意思是,COM流程只存在于一个流程中(或线程甚至,但这就是公寓故事的来源).如果从两个进程访问一个COM对象,则一个进程实际上将来自和返回对象的调用编组为"平面数据",并将消息发布到另一个进程的隐藏窗口句柄.
为了能够做你所描述的内容,当"拥有进程"想要关闭时,你必须担心如何处理对象,并且必须"暂停"对象(例如通过序列化)并询问其他进程之一"恢复"对象并承担所有权并开始运行对象.
我建议你创建第三个进程,特别是只运行你想要在其他进程中使用的这个单例对象.通过这种方式,您可以让正常的引用计数和COM激活完成它的工作,并且您将按照应该使用的方式使用COM.
| 归档时间: |
|
| 查看次数: |
372 次 |
| 最近记录: |