请问一个关于webservice的问题,服务端只有一个接口IFistWS:
type
IFirstWS=interface(IInvokable)
['{4D72FE8F-6543-4DC0-91ED-796746BF4E13}']
function GetWSMsg:WideString;stdcall;
end;implementationuses
InvokeRegistry;initialization
InvRegistry.RegisterInterface(TypeInfo(IFirstWS));=====TFirstWS实现上面的接口:
type
TFistWS=class(TInterfacedObject,IFirstWS)
public
function GetWSMsg : widestring; stdcall;
end;implementation{ TFistWS }function TFistWS.GetWSMsg: widestring;
begin
Result:='Test Good';
end;procedure FirstWSFactory(out obj:TObject);
begin
obj:=TFistWS.Create;
end;initialization
InvRegistry.RegisterInvokableClass(TFistWS,FirstWSFactory);end.
///////////////////////////////////
客户端的HTTPRIO1的WSDLLOCATION我设置为:
http://localhost:8081/FirstWEBService.WSDemo1/wsdl/IFirstWS
我在web app debugger中看到的地址是这个。
PORT:IFirstWSPort和Serice:IFirstWSservice
都是从下拉框中的选中的。我在button1中的代码为:
implementation{$R *.dfm}uses
FirstWSIntf;procedure TForm1.BitBtn1Click(Sender: TObject);
var
IFWebClient:IFirstWS;
begin
IFWebClient:=HTTPRIO1 as IFirstWS;
try
Edit1.Text:=IFWebClient.GetWSMsg;
finally
IFWebclient:=nil;
end;
end;//执行到Edit1.Text:=IFWebClient.GetWSMsg;这一句时报错,提示如下:
Project clientapp.exe raised exception class ERemotableExcpetion with message 'Invalid pointer operation',Process stopped.Use Step or Run to continue.
这个错误是怎么造成的?还请各位大侠们帮忙指点,谢谢!
我在调试服务端时,发现是在_FreeMem(self)这一步报的错。
type
IFirstWS=interface(IInvokable)
['{4D72FE8F-6543-4DC0-91ED-796746BF4E13}']
function GetWSMsg:WideString;stdcall;
end;implementationuses
InvokeRegistry;initialization
InvRegistry.RegisterInterface(TypeInfo(IFirstWS));=====TFirstWS实现上面的接口:
type
TFistWS=class(TInterfacedObject,IFirstWS)
public
function GetWSMsg : widestring; stdcall;
end;implementation{ TFistWS }function TFistWS.GetWSMsg: widestring;
begin
Result:='Test Good';
end;procedure FirstWSFactory(out obj:TObject);
begin
obj:=TFistWS.Create;
end;initialization
InvRegistry.RegisterInvokableClass(TFistWS,FirstWSFactory);end.
///////////////////////////////////
客户端的HTTPRIO1的WSDLLOCATION我设置为:
http://localhost:8081/FirstWEBService.WSDemo1/wsdl/IFirstWS
我在web app debugger中看到的地址是这个。
PORT:IFirstWSPort和Serice:IFirstWSservice
都是从下拉框中的选中的。我在button1中的代码为:
implementation{$R *.dfm}uses
FirstWSIntf;procedure TForm1.BitBtn1Click(Sender: TObject);
var
IFWebClient:IFirstWS;
begin
IFWebClient:=HTTPRIO1 as IFirstWS;
try
Edit1.Text:=IFWebClient.GetWSMsg;
finally
IFWebclient:=nil;
end;
end;//执行到Edit1.Text:=IFWebClient.GetWSMsg;这一句时报错,提示如下:
Project clientapp.exe raised exception class ERemotableExcpetion with message 'Invalid pointer operation',Process stopped.Use Step or Run to continue.
这个错误是怎么造成的?还请各位大侠们帮忙指点,谢谢!
我在调试服务端时,发现是在_FreeMem(self)这一步报的错。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货