本地基于MFC的test.exe组件,客户使用:
CoCreateInstance(tbclsid,NULL,CLSCTX_LOCAL_SERVER,
IID_IUnknown,(void **)&m_pTBUnknown);
调用,结果每个客户都产生了一个test.exe组件实例。
现在想无论多少个客户调用组件,都共用一个组件实例。请教,在组件端和客户端如何实现?解决的话立刻给分。不够追加。

解决方案 »

  1.   

    本地基于ALT的test.exe组件好象就没问题
      

  2.   

    你应该在CoRegisterClassObject中用REGCLS_MULTIPLEUSE
    但是这样也只是客户共用类厂对象,不是共用组件对象
    如果你想共用组件对象,ATL中提供了DECLARE_CLASSFACTORY_SINGLETON宏,很方便
    如果你用mfc的话,那就自己编一个类厂对象,缓存一个组件对象,对于以后的每一个请求,都返回这个缓存对象的指针
    另外,你还可以考虑一下多实例共享状态
      

  3.   

    To:luohualiushui(落花流水)
    能不能详细一些介绍类厂的实现,或者推荐一下好的实例和书籍,源码。
      

  4.   

    com本质论 讲的比较详细
    www.codestudy.net上可以下载实例、源码可以到下面两个网站找
    www.codeproject.com
    www.codeguru.com
      

  5.   

    这个问题在lop5712(LOP)的发来的例子程序的帮助下解决了。祥见
    http://expert.csdn.net/Expert/topic/2579/2579386.xml?temp=.6365473
    lop5712(LOP)请来接分。