2

到目前为止,我一直在使用 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"
    
  3. 在 "c:\code\indy" 中解压新的 Indy 安装并按顺序打开IndySystem140.dpk, IndyCore140.dpk, IndyProtocols140.dpk, dclIndyCore140.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?

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

4

1 回答 1

4

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

于 2012-02-27T09:18:35.347 回答