gpt4 book ai didi

web-services - WebService使用的释放变量

转载 作者:行者123 更新时间:2023-12-03 19:43:05 25 4
gpt4 key购买 nike

如何释放WebService正在使用的变量。

我正在使用这种形式:

 HttpPrincipal.WSDLLocation: = FrmPrincipal.edtWS.Text;
HttpPrincipal.Service: = 'CADServicesService';
HttpPrincipal.Port := 'CADServices';
Trinity: = HttpPrincipal as CADServices;


在我关闭表单的那一刻,出现了一个错误,并发现在声明此部分时:

Trinity: = HttpPrincipal as CADServices;


我认为它已经卡在内存中了。

错误如下:


“无效的指针”
当您关闭窗体,在OnClose或OnDestroy窗体中没有任何事件时,会发生错误。


说明:
Trinity : CADServices,
HttpPrincipal is a THTTPRIO,
CADServices is my Unit containing all procedures / functions from WebService.

最佳答案

而不是使用designtime组件,请尝试在运行时创建HTTPRIO:

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单元中查找)

关于web-services - WebService使用的释放变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13743028/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com