簡體   English   中英

Delphi 2007和Indy10在IdStackWindows中編譯錯誤

[英]Delphi 2007 and Indy10 compile error in IdStackWindows

我剛剛將我的Indy10安裝更新到最新版本(5276),現在我在嘗試編譯Windows應用程序時遇到錯誤。

IdStackWindows.pas(2364)錯誤:E2029'..'預期,但';' 發現

問題似乎是TIdStackWindows.SetKeepAliveValues第2364行的ka: tcp_keepalive聲明。

我在Windows 7 Professional x64上使用Delphi 2007。

經過進一步調查后,我發現在IdWinsock2.pas中聲明了一個新的TCP_KEEPALIVE常量:

  {$EXTERNALSYM TCP_KEEPALIVE}
  TCP_KEEPALIVE         = 3;

這與現有的tcp_keepalive記錄沖突,因此已重命名為_tcp_keepalive TIdStackWindows.SetKeepAliveValues()聲明的ka變量更新為此新類型名稱可解決錯誤。

然后我在IdSSLOpenSSL.pas中發現了另一個編譯問題:

[DCC錯誤] IdSSLOpenSSL.pas(980):E2065不滿意的前向或外部聲明:'IndySSL_CTX_use_certificate_chain_file'

可以通過在{$IFDEF STRING_IS_UNICODE}塊的{$ELSE}部分中添加缺少的IndySSL_CTX_use_certificate_chain_file()實現來解決此錯誤,該部分從第1155行開始,並讓它只調用OpenSSL的標准SSL_CTX_use_certificate_chain_file()函數。

更新:
修訂版5277及更高版本中提供了所有必要的修復程序(如上所述)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM