Web services 释放WebService使用的变量
如何释放Web服务正在使用的变量 我正在使用此表单:Web services 释放WebService使用的变量,web-services,delphi,delphi-xe2,Web Services,Delphi,Delphi Xe2,如何释放Web服务正在使用的变量 我正在使用此表单: HttpPrincipal.WSDLLocation: = FrmPrincipal.edtWS.Text; HttpPrincipal.Service: = 'CADServicesService'; HttpPrincipal.Port := 'CADServices'; Trinity: = HttpPrincipal as CADServices; 在我将关闭表单时,出现了一个错误,并发现在我声明此部分时: Tr
HttpPrincipal.WSDLLocation: = FrmPrincipal.edtWS.Text;
HttpPrincipal.Service: = 'CADServicesService';
HttpPrincipal.Port := 'CADServices';
Trinity: = HttpPrincipal as CADServices;
在我将关闭表单时,出现了一个错误,并发现在我声明此部分时:
Trinity: = HttpPrincipal as CADServices;
我想这件事已经记不住了
错误如下:
“无效指针”
关闭表单时会发生错误,OnClose或OnDestroy表单中没有任何事件
说明:
Trinity:CADServices,
HttpPrincipal是一个THTTPRIO,
CADServices是我的单元,包含来自WebService的所有过程/函数。
请尝试在运行时创建HTTPIO,而不是使用designtime组件:
function GetCadServices(Addr : String): CadServices;
const
defSvc = 'CADServicesService';
defPrt = 'CADServices';
var
RIO: THTTPRIO;
begin
Result := nil;
RIO := THTTPRIO.Create(nil)
try
Result := (RIO as CadServices);
RIO.WSDLLocation := Addr;
RIO.Service := defSvc;
RIO.Port := defPrt;
finally
if (Result = nil) then
RIO.Free;
end;
end;
用法:
Trinity := GetCadServices(FrmPrincipal.edtWS.Text);
如果您使用WSDL导入器导入WSDL,则会自动为您生成此代码(查看CadServices1单元)Trinity必须销毁变量,代码是真的是,“CADServices”是带有我的WebService的单元。Jose Eduardo,他的意思是
Trinity:=HttpPrincipal-the-CADServices
类似于一些伪代码,而不是真正的Delphi代码。我的借口是一个错误,代码将Trindade:=HttpPrincipal作为CADServices代码>我希望在您编辑问题并修复所有错误之前,没有人会帮助您。细节很重要。修复实际错误。发布真实代码而不是伪代码。修复格式。还要添加HttpPrincipal和CadServices的定义,我们无法读取屏幕上的内容。没有用,值得记住Trinity:=HttpPrincipal作为CadServices;这被称为主要形式OnCreate@JoseEduardo就像我之前说过的,只要你忽略了这些细节,你就很难得到一个好的答案,但是如果设置了HttpPrincipal的所有者,这个答案就不应该被释放。更多的代码肯定会有帮助——特别是与创建和销毁HttpPrincipal@SirRufo:如OP问题下的评论所述,这是一个设计时间组件。您能告诉我这是在哪里说明的吗?也许我是瞎子。。。但是我找不到它。。。