远程调用中diapatch table方法? ( 积分: 100 )

  • 主题发起人 主题发起人 ou_ma
  • 开始时间 开始时间
O

ou_ma

Unregistered / Unconfirmed
GUEST, unregistred user!
1.有效远程调用
方式:
A late Binding, 最无效的,但最简单。
  dcomconnection1.appserver.getsysteminfo(vtime,vrdm,Vthread);
B Early binding,最有效,只支持deom方式
  (dcomconnection1.getserver as irdmdemo3).getsysteminfo(vtime,vrdm,vthread);
这种方法:服务器端必须在客户端机器中注册应用程序接口。方法:直接在客户端机器中执行应用程序服务器一次,或在客户端机器中注册程序服务器的Type Library信息.
dispatch table, 比较有效,支持多种连接
在type library的确良wrapper类型中自动产生dispatch Talbe接口,可以在delphi中开启示录应用程序服务器名称的wrapper类别原始程序(通常xxx_Tbl.Pas档案,xxx代表应用程序服务器名称),在wrapper类别中有一个disp结尾的接口,就是应用程序服务器的dispach table.
  C 采用dispatch table方法调用
var
adisp : IrdmDemo3disp;
begin
adisp := irdmdemo3disp(idispatch(dcomconnection1.appserver));
adisp.getsysteminfo(vtime,vrdm,vthread);
end;
*********************
上面是看李维书作的一段笔记,在使用dispatch table方法时,定义如上面的类似,但出现[Error] Undeclared identifier: "IrdmDemo3disp".
1.把Type library中的parent interface设定Idispacth,不行.
请教如何解决?
 
1.有效远程调用
方式:
A late Binding, 最无效的,但最简单。
  dcomconnection1.appserver.getsysteminfo(vtime,vrdm,Vthread);
B Early binding,最有效,只支持deom方式
  (dcomconnection1.getserver as irdmdemo3).getsysteminfo(vtime,vrdm,vthread);
这种方法:服务器端必须在客户端机器中注册应用程序接口。方法:直接在客户端机器中执行应用程序服务器一次,或在客户端机器中注册程序服务器的Type Library信息.
dispatch table, 比较有效,支持多种连接
在type library的确良wrapper类型中自动产生dispatch Talbe接口,可以在delphi中开启示录应用程序服务器名称的wrapper类别原始程序(通常xxx_Tbl.Pas档案,xxx代表应用程序服务器名称),在wrapper类别中有一个disp结尾的接口,就是应用程序服务器的dispach table.
  C 采用dispatch table方法调用
var
adisp : IrdmDemo3disp;
begin
adisp := irdmdemo3disp(idispatch(dcomconnection1.appserver));
adisp.getsysteminfo(vtime,vrdm,vthread);
end;
*********************
上面是看李维书作的一段笔记,在使用dispatch table方法时,定义如上面的类似,但出现[Error] Undeclared identifier: "IrdmDemo3disp".
1.把Type library中的parent interface设定Idispacth,不行.
请教如何解决?
 
后退
顶部