不太明白你的意思。之间CREATE不可以吗??COM是引用计数调用的。

解决方案 »

  1.   

    to CeleronII(流氓兔) 
       我的意图是这样的:我先用AppServer上的一个方法 比如AppServer.GetAnotherObj:TMyObject得到一个对象,然后在客户端就可以调用这个对象的方法,MyObject.Do1()...MyObject.Do2()...等。这样一来,不至于把应用服务器的方法个数做的很多,在应用服务器上我只需要许多个对象就可以了,这样有效把方法进行打包到对象。
      

  2.   

    zwhhoo(我爱真理):
      原闻其详!
      

  3.   

    AppServer.GetAnotherObj:Variant
    Variant.do1()
    Variant.do2()
      

  4.   

    在应用服务器上定义了对象并注册后,如Tobj1,会生成 项目名_Tlb.pas,在客户程序上引用就可以直接用定义的对象了。如appserver.getanotherobj:Tobj1
      

  5.   

    那返回了 一个接口以后,如何对这个的方法进行定义(好像type libary没有定义第二个接口方法的地方),还有如何在客户端调用这个接口的方法。我只知道可用AppServer接口,其它如何用呢?
      

  6.   

    在.tlb的图形界面中,点击new method增加方法,然后在parameters面板里定义输入输出参数。
    输出参数一定要使用olevariant类型。在客户端就可以使用这个接口了。比如我定义一个接口:
    procedure TCoManPro.GetClass(const sProjectID: WideString; var vData,
      Flag: OleVariant);客户端要先uses xxx_tlb
    var
      ManProForm: TManProForm;
      MPObj: ICoManProDisp;
    begin
      MPObj:=ICoManProDisp(IDispatch(SocketConnection1.AppServer));
      MPObj.GetClass(sProjectID,vData,Flag);//可以使用了
    end;
      

  7.   

    通过各位高手的指教,小弟明白了调用第二个接口的方法。但我还有一点疑问:
    如何在type library中定义第二个接口的方法呢。我点击刷新,系统并没有象定义第一个接口那样给定义了方法的声明。是不是要自己手工加的呢?
    谢谢
      

  8.   

    难道在type Library中定义第二个接口不是很方便。还有一个问题是:在应用服务器内部,可能要接口之间需要相互引用,如何调用呢?小弟刚涉及这一块,比较愚笨。见谅。
      

  9.   

    既然是大量方法在不同接口之间的分配,那么只需要单独定义不同的接口在不同的xxx.pas里,然后引用xxx_tlb即可,资源的引用与uses其他资源没什么不同。