
delphi7 在DLL中使用TIdTCPClient问题,连接不上服务器
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, IdUDPServer, IdTCPServer, Sockets, IdUDPBase, IdUDPClient,
IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, ExtCtrls,
StdCtrls, Buttons, ComCtrls, IdThreadMgr, IdThreadMgrDefault, ScktComp,
IdIPWatch;
{$R *.res}
function linkserver():integer;stdcall;
var
IdTCPClient1.TIdTCPClient;
begin
IdTCPClient1.host:='127.0.0.1';
IdTCPClient1.port:=8000;
IdTCPClient1.connect(5000);
id IdTCPClient1.connected then
showmessage('已链接')
else
showmessage('未链接');
end;
exports
linkserver;
begin
end.
以上是源码,服务器程序没问题,我做了个应用程序,都能连上,并且能返回数据。。 做个DLL就不对了,请高手帮忙解决一下。。。
在线等。。盼。。。。。。。。。。
谢谢!!!!!!!!!! 展开
如果可以,希望能加我百度好友,共同学习。
DLL文件:
library DLLDPR;
uses
ShareMem,
IdTCPClient;
{$R *.res}
function linkserver(host: string; port: integer): boolean;
var
tcp: TIdTCPClient;
begin
tcp := tidtcpclient.Create(nil);
tcp.Host := host;
tcp.Port := port;
try
tcp.Connect(1000);
except
end;
result := tcp.Connected;
end;
exports
linkserver;
end.
EXE文件
function linkserver(host: string; port: integer): boolean;
external 'dlldpr.dll';
procedure TForm1.Button1Click(Sender: TObject);
const
ba: array[boolean] of string = ('失败', '成功');
var
b: boolean;
begin
b := linkserver(edit1.Text, strtointdef(edit2.Text, 80));
showmessage('连接到' + edit1.Text + #13 + ba[b]);
end;