使用 TMS 组件包升级 Indy10 (C++ Builder)

Cod*_*345 3 installation c++builder tms indy10

到目前为止,我一直在使用 Indy 10,没有出现任何问题,但最近在安装 TMS 组件包时出现问题后,我正在寻找升级 Indy 的替代方法。TMS 在带有 CB2010 的干净系统上安装良好,但是当我使用以下过程升级 Indy 时,在启动 IDE 时以及 TMS 安装后立即出现错误 - 错误为:The procedure entry point @Idhttp@TidCustomHTTP@GetRequestHeaders$qqrv could not be located in the dynamic link library IndyProtocols140.bpl。显然我这边有一些问题,因为 TMS 确实是在干净安装时安装的,而没有 Indy 升级。

因此,如果我用较新的版本覆盖 Indy 文件,也许它可以正确安装。

以下是我现在使用的 Indy 升级的安装过程(在 TMS 安装之前一直有效):

  1. 启动IDE并删除Indy10 Protocols Design TimeIndy10 Core Design Time打包

  2. 运行此脚本来删除旧的 Indy 文件:

    del /q "c:\Program Files\Embarcadero\RAD Studio\7.0\lib\Indy10\*.*"
    del /q "c:\Program Files\Embarcadero\RAD Studio\7.0\lib\debug\Indy10\*.*"
    del /q "c:\Program Files\Embarcadero\RAD Studio\7.0\include\Indy10\*.*"
    del /q /s "c:\Program Files\Embarcadero\RAD Studio\7.0\source\Indy\Indy10\*.*"
    
    
    del "c:\Program Files\Embarcadero\RAD Studio\7.0\lib\debug\IndyCore.bpi"
    del "c:\Program Files\Embarcadero\RAD Studio\7.0\lib\debug\IndyCore.lib"
    del "c:\Program Files\Embarcadero\RAD Studio\7.0\lib\debug\IndyProtocols.bpi"
    del "c:\Program Files\Embarcadero\RAD Studio\7.0\lib\debug\IndyProtocols.lib"
    del "c:\Program Files\Embarcadero\RAD Studio\7.0\lib\debug\IndySystem.bpi"
    del "c:\Program Files\Embarcadero\RAD Studio\7.0\lib\debug\IndySystem.lib"
    del "c:\Program Files\Embarcadero\RAD Studio\7.0\lib\release\IndyCore.bpi"
    del "c:\Program Files\Embarcadero\RAD Studio\7.0\lib\release\IndyCore.lib"
    del "c:\Program Files\Embarcadero\RAD Studio\7.0\lib\release\IndyProtocols.bpi"
    del "c:\Program Files\Embarcadero\RAD Studio\7.0\lib\release\IndyProtocols.lib"
    del "c:\Program Files\Embarcadero\RAD Studio\7.0\lib\release\IndySystem.bpi"
    del "c:\Program Files\Embarcadero\RAD Studio\7.0\lib\release\IndySystem.lib"
    del "c:\Program Files\Embarcadero\RAD Studio\7.0\bin\IndyCore140.bpl"
    del "c:\Program Files\Embarcadero\RAD Studio\7.0\bin\IndyProtocols140.bpl"
    del "c:\Program Files\Embarcadero\RAD Studio\7.0\bin\IndySystem140.bpl"
    del "c:\Program Files\Embarcadero\RAD Studio\7.0\bin\dclIndyCore140.bpl"
    del "c:\Program Files\Embarcadero\RAD Studio\7.0\bin\dclIndyProtocols140.bpl"
    
    Run Code Online (Sandbox Code Playgroud)
  3. 在“c:\code\indy”中解压新安装的 Indy 并按顺序打开IndySystem140.dpkIndyCore140.dpkIndyProtocols140.dpkdclIndyCore140.dpk、 。dclIndyProtocols140.dpk

  4. Generate all C++ Builder files (including package libs)修改上述每个包的编译选项。

  5. 将所有包设置为Release并按上述顺序构建它们。

  6. 还安装最后两个

  7. 将包含和库路径添加到“c:\code\indy\Core”(协议和系统也相同)

我还搞乱了 Indy 附带的 FullC140.bat 脚本,但没有像上面那样正确安装它。

有人成功更新了 Indy 并在其上安装了 TMS 吗?

我的批处理脚本是否删除了一些不应该删除的文件?

Rem*_*eau 5

出错的 TMS 包被编译为链接到 IDE 中预安装的 Indy 包。由于 Indy 的 IdHTTP.pas 单元中的接口更改(具体来说, 的GetRequestHeaders()方法TIdCustomHTTP已重命名为GetRequest()),您的 Indy 升级破坏了该 TMS 包。要解决该错误,必须重新编译失败的 TMS 包以链接升级的 Indy 包,或者您必须恢复 IdHTTP.pas 中的更改并再次重新编译 Indy。