加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Delphi 2007和Indy10在IdStackWindows中编译错误

发布时间:2020-12-15 09:23:13 所属栏目:大数据 来源:网络整理
导读:我刚刚将我的Indy10安装更新到最新版本(5276),现在我在尝试编译 Windows应用程序时遇到错误. IdStackWindows.pas(2364) Error: E2029 ‘..’ expected but ‘;’ found 问题似乎是TIdStackWindows.SetKeepAliveValues中第2364行的ka:tcp_keepalive声明. 我
我刚刚将我的Indy10安装更新到最新版本(5276),现在我在尝试编译 Windows应用程序时遇到错误.

IdStackWindows.pas(2364) Error: E2029 ‘..’ expected but ‘;’ found

问题似乎是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 Error] IdSSLOpenSSL.pas(980): E2065 Unsatisfied forward or
external declaration: ‘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及更高版本中提供了所有必要的修复程序(如上所述).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读