有人成功的在lazarus下做的indy10的软件可用吗?

软件和网站开发以及相关技术探讨
回复
halflifezy
帖子: 14
注册时间: 2007-04-09 17:05
送出感谢: 0
接收感谢: 0

有人成功的在lazarus下做的indy10的软件可用吗?

#1

帖子 halflifezy » 2008-04-16 23:27

我装好了lazarus和indy10,但是编译出来的程序有问题。
如果是使用服务器端的控件,没有任何效果。
如我用了TIdUdpServer就会出现程序启动错误。
而我用了TIdTcpServer则程序根本就不启动。
郁闷啊。。
有没有人解决这个问题了?教下小弟我,谢谢啊。
halflifezy
帖子: 14
注册时间: 2007-04-09 17:05
送出感谢: 0
接收感谢: 0

#2

帖子 halflifezy » 2008-04-16 23:28

我的ubuntu是7.10的。
bruce0211@Taiwan
帖子: 2
注册时间: 2010-06-27 9:18
送出感谢: 0
接收感谢: 0

Re: 有人成功的在lazarus下做的indy10的软件可用吗?

#3

帖子 bruce0211@Taiwan » 2010-06-27 9:33

INDY 10 在 Linux Lazarus 下無法運作的解決方案
http://delphi.ktop.com.tw/board.php?cid ... tid=100948 (文中第 3 個回覆)



(1) INDY 10 的 README 中有說, 在 UNIX 系統中編譯的時後要加入 "-dUseCThreads" 參數

在你的 INDY 專案主選單 -> Project -> Compiler Options 之 Other 頁, 加入 "-dUseCThreads" 編譯參數






(2) 在 Linux 跟 WIN32 環境中, 驅動 TIdTcpServer 的寫法也有不同

WIN32 :
procedure TForm1.FormActivate(Sender: TObject);
begin
IdTCPServer1.DefaultPort:= 6501;
IdTCPServer1.Active:=true;

end;

Linux
procedure TForm1.FormActivate(Sender: TObject);
begin
//uses idGlobal , the Id_IPv4 force the IdTCPServer to work in Id_IPV4 mode.
IdTCPServer1.Bindings.Add.IPVersion := Id_IPv4; // 否則將出現 with socket error # 98 , address already in use
IdTCPServer1.Bindings.Add.IP:='127.0.0.1';
IdTCPServer1.Bindings.Add.Port:= 6501;
IdTCPServer1.Active:=true;
end;


(3) 在 IdTCPServer1 的 OnExecute() 事件若要處理 VCL , 請使用 TIdSync 同步物件; 否則, 直接在 OnExecute() 事件中處理 VCL 顯示類的 CODE , 將導致被連線幾次後整個 Server 程式就 Crash 掉
回复

回到 “软件/网站开发”