Обновление Indy10 с помощью пакета компонентов TMS (C ++ Builder) - PullRequest
2 голосов
/ 27 февраля 2012

До сих пор я использовал 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 Time и Indy10 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. Распакуйте новую установку Indy в "c: \ code \ 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» (и то же самое для протоколов и системы)

Я также возился со скриптом FullC140.bat, который поставляется с Indy, но не совсем установил его, как описано выше.

Кто-нибудь успешно обновил Indy и установил TMS поверх него?

Удаляет ли мой пакетный скрипт некоторые файлы, которые он не должен?

1 Ответ

4 голосов
/ 27 февраля 2012

Пакет TMS с ошибками был скомпилирован для связи с пакетами Indy, которые были предварительно установлены с IDE. Ваше обновление Indy нарушает этот пакет TMS из-за изменения интерфейса в модуле IdHTTP.pas Indy (в частности, метод GetRequestHeaders() для TIdCustomHTTP был переименован в GetRequest()). Чтобы устранить эту ошибку, нужно либо перекомпилировать сбойный пакет TMS, чтобы связать его с обновленными пакетами Indy, либо вам придется отменить это изменение в IdHTTP.pas и заново скомпилировать Indy.

...