求:建立对操作系统全局唯一 Com 实例的方法 现有需要,在操作系统中建立唯一的一个 Automation Object 实例,冥思苦想、埋头苦干7天毫无进展,总是 CreateObject 了,又无法控制其 Release,已吐血数升。现请求各位大侠帮忙,感谢感谢。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 To eastliangliang(青苹果):我也正是这么做,可是 Com 对象的 Release 取决于客户端,而不是我的程序。所以当没有客户端连接的时候,com 就自动 Release 了!注意,是自动 Release!我无法控制啊! 把你的 Com 嵌套到另外一个 Com 里去,让 客户端连接 第2 个com , 第2 个com 再创建第1个com 我给你提一种方案:你这个需要的东西可以划分为两部分。1,内核部分,做成WINDOWS SERVICE,以系统用户方式运行,用SOCKET方式提供功能。2,COM部分,将功能请求用SOCKET转发给内核部分。。 To real_name(*真名): 我第一次就是这么做的,可是没用,com 只对进程空间有效,到另外一个进程,便会创建一个新的 com 实例。To halfdream(哈欠): 老兄……真不知道该怎么评价你的方案……既然能做 socket,为什么不干脆搞个 webservice 算了?能不通过网络,就在本机上实现单一实例的目标吗? 要这样啊。这个全局唯一的东西一定要做成COM的吗?换个实现方法怎么样,别一棵树上吊死。 1,WINDOWS对COM支持的平台不直接支持这样做。这同跨进程COM或DCOM底层的机制有些关系,它们要受进程安全管理。。每个进程都是属于特定用户的,ADMINISTRATOR用户不会访问到SYSTEM用户启动的COM。。不过仍然有一些办法。。2,楼主做全局唯一的目的是有东西需共享状态,事实上,并不等于整个COM实例需要共享。。3,做成COM的目的之一应该是让客户端容易用简单而统一的方式调用。系统级的服务很多是用SOCKET,管道等方式提供,使用COM封装实现协议透明化。4,那种方案不是我创的,微软早就这样做了。 楼主,其实说了这么多,解决问题在一个关键:绕开RPC,不管具体你用哪种方法。楼主做COM的时候也可以自定义marshaling,那时候多半也要用上SOCKET。 >>2,楼主做全局唯一的目的是有东西需共享状态,事实上,并不等于整个COM实例需要共享。。这个解决思路最好 一个事件中分别对两个表进行插入数据操作,若其中一个插入失败,则都回滚到以前,怎么处理??? 简单问题,进来看看吧.在线等待... 2个access库中相同结构的2个表,想将数据合并到一个表中,并排除重复记录,怎么写啊? 有谁知道老板键的效果是怎么实现的?? 在D7下如何建立一个DPK文件! 急急!!!!,我想做一个很简单的排班表,不知哪位兄弟能帮个忙,分、钱相送! 请教一个关于图片的问题 初学Delphi遇到几个问题!求教! 这样的数据结构,怎样实现? 综述有关DBGIRD的问题 一个小小的问题,procedure! 在access中这样的SQL语句怎么写?
第2 个com 再创建第1个com
1,内核部分,做成WINDOWS SERVICE,以系统用户方式运行,用SOCKET方式提供功能。
2,COM部分,将功能请求用SOCKET转发给内核部分。。
我第一次就是这么做的,可是没用,com 只对进程空间有效,到另外一个进程,便会创建一个新的 com 实例。To halfdream(哈欠):
老兄……真不知道该怎么评价你的方案……既然能做 socket,为什么不干脆搞个 webservice 算了?能不通过网络,就在本机上实现单一实例的目标吗?
这个全局唯一的东西一定要做成COM的吗?换个实现方法怎么样,别一棵树上吊死。
它们要受进程安全管理。。每个进程都是属于特定用户的,ADMINISTRATOR用户不会访问到
SYSTEM用户启动的COM。。不过仍然有一些办法。。2,楼主做全局唯一的目的是有东西需共享状态,事实上,并不等于整个COM实例需要共享。。3,做成COM的目的之一应该是让客户端容易用简单而统一的方式调用。系统级的服务很多是用
SOCKET,管道等方式提供,使用COM封装实现协议透明化。4,那种方案不是我创的,微软早就这样做了。
其实说了这么多,解决问题在一个关键:绕开RPC,不管具体你用哪种方法。
楼主做COM的时候也可以自定义marshaling,那时候多半也要用上SOCKET。