初学三层,有个很菜的问题,请多关照。(50分)

  • 主题发起人 主题发起人 吴剑明
  • 开始时间 开始时间

吴剑明

Unregistered / Unconfirmed
GUEST, unregistred user!
用DCOM连接。
APPSERVER中有一个方法:
procedure Tmycom.showmsg(var vtable: OleVariant);
begin
DefaultInterface.showmsg(vtable);
vtable := 'aaaaaaaaaaaa';
end;
客户端调用该方法:
procedure TForm1.Button1Click(Sender: TObject);
var
v : variant;
begin
DCOMConnection1.AppServer.showmsg(v);
showmessage(v);
end;
为何SHOW出来的总是空的?请教。
 
APPSERVER中showmsg(var vtable: OleVariant)方法应为:
Showmsg(out vtable: OleVariant)
应改 TypeLib Editor 里的参数设置。
 
试了,还是不行。
其实我原来参数是:in , out
 
可能是服务器的参数类型不对,打开type Liberary Edit对参数进行重新设定。
 
不行啊,有人会吗?
 
为什么没人说话啊。
很简单的问题嘛。
 
哈哈!不晓得你是不是有意思的写这样代码,我才搞三层不久。
DefaultInterface.showmsg(vtable);
vtable := 'aaaaaaaaaaaa';
是不是要这样写;
vtable := 'aaaaaaaaaaaa';
DefaultInterface.showmsg(vtable);
 
试着将 vTable 的类型改为 BSTR
 
不行啊! 救命啊!!
其实我这样写的原因,只是想学一下如何调用APPSERVER中的方法。
为何现在不行,救命啊!!!
 
DefaultInterface.showmsg(vtable);这句代码有何作用,不要行吗?
 
为什么 不行啊,我是按照李维的分布式系统篇上的例子来做的。
他是GETSERVERNAME,我是SHOWMSG,但都是给一个变量付值,为什么我
的就是不行?
气死我啦!!!!
 
这个问题再加50,不够再加!!!
 
DefaultInterface是如何定义的
 
不要硬搬教条!!
 
哈哈,原来我写错地方了。解决了。
 
多人接受答案了。
 
后退
顶部