1,593
社区成员
发帖
与我相关
我的任务
分享
TForm5 = class(TForm)
WebConnection1: TWebConnection;
btn1: TButton;
btn5: TButton;
procedure btn1Click(Sender: TObject);
procedure btn5Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
// 这段代码是中的WebConnection1 的释放是直接由窗体负责释放。
procedure TForm5.btn1Click(Sender: TObject);
var
pDisp: IWoKoDisp;
begin
WebConnection1.URL := 'http://localhost/Scripts/SDSHTTPServer.dll';
WebConnection1.ServerGUID := GUIDToString(CLASS_WoKo);
pDisp := IWoKoDisp(WebConnection1.GetServer);
// 从服务端取个随机整数
mmo1.Lines.Add(IntToStr(pDisp.GetVal));
end;
// 这段代码是手动释放WebConnection ,就会出现COM对象不断增加的情况
procedure TForm5.btn5Click(Sender: TObject);
var
cConn:TWebConnection;
pDisp: IWoKoDisp;
begin
cConn := TWebConnection.Create(nil);
try
cConn.URL := 'http://localhost/Scripts/SDSHTTPServer.dll';
cConn.ServerGUID := GUIDToString(CLASS_WoKo);
pDisp := IWoKoDisp(cConn.GetServer);
// 从服务端取个随机整数
mmo1.Lines.Add(IntToStr(pDisp.GetVal));
pDisp := nil;
finally
cConn.Free;
end;
end;
// 服务端只做了个简单的调用函数。
// 服务端TLB的接口申明,就一个GetVal获取一个1-99的随机整数。
IWoKo = interface(IAppServer)
['{35E2C1DD-1B0A-4E84-8CAE-4246752DD4FD}']
function GetVal: Integer; safecall;
end;