[英]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.