"无效的被呼叫方"!这是怎么回事???求救(50分)

  • 主题发起人 sapphire99
  • 开始时间
S

sapphire99

Unregistered / Unconfirmed
GUEST, unregistred user!
我碰到了2个问题:
A.应用服务器端的一个过程:
procedure FilterAss(var vClassNum: OleVariant;
var IfResult: OleVariant);safecall;
原先在参数vClassNum之前没加var,就报错:“Invalid variant Operation”,然后我把Server_tlb,和interface(IAppServer),连同过程FilterAss本身的参数(共要修改3处吧)vClassNum都改为了var的变量型参数,这就不报错了。但是再下来又有问题了
B.在Delphi中编译运行客户端时出错了,光标指在这一行程序上:
FormMain.SocketConnection.AppServer.FilterAss(stClassNum,haveAss);
报的错误是“无效的被呼叫方”,搞不懂了,急!
请大侠们指教
服务器端的程序:
procedure TAMSN.FilterAss(var vClassNum: OleVariant;
var IfResult: OleVariant);
begin
QAssTb.Close;
QAssTb.SQL.Clear;
QAssTb.SQL.Add('Select * From AssignmentTb');
QAssTb.SQL.Add('Where ClassNum =' + '''' + vClassNum + '''');
QAssTb.Open;
end;
// *********************************************************************//
IAMSN = interface(IAppServer)
['{386C5F71-3BAE-4C66-BC2C-677462A3A4DA}']
procedure AddUser(Host: OleVariant;
IP: OleVariant);
safecall;
procedure DelUser(Host: OleVariant;
IP: OleVariant);
safecall;
procedure FilterAss(var vClassNum: OleVariant;
var IfResult: OleVariant);
safecall;
end;
===================================
客户端:
var
FormStu: TFormStu;
haveAss, stClassNum: variant;
-------------------------------------------
procedure TFormStu.FormShow(Sender: TObject);
begin
haveAss := false;
stClassNum := ClassNum;
//showmessage(stClassNum);
FormMain.SocketConnection.AppServer.FilterAss(stClassNum,haveAss);
end;
===========================================
AddUser()和DelUser()都没有问题,在FormShow()中,我加了showmessage(stClassNum);显示的也是我所要的数据,是string类型。不知在哪个地方疏漏了什么
 
你确信你的客户端联接服务端程序成功了么?
先写一个无参数的方法试一下吧,看能不能调起来。
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
934
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
顶部