Страницы

пятница, 2 января 2009 г.

The procedure entry point @UnitName@initialization$ProcName could not be located in the dynamic link library Package.bpl.

Экспериментируя с разными версиями JCL и JVCL столкнулся с ошибкой:

CodeGear RAD Studio for Microsoft Windows [Loading JclVersionControlExpert120.bpl]: bds.exe - Entry Point Not Found
---------------------------
The procedure entry point @Jclversioncontrol@initialization$qqrv could not be located in the dynamic link library JclVcl120.bpl.

Причина появления этой ошибки банальна и трудноуловима. В моём случае, проблема была в том, что пакеты Jcl дублировались. Когда–то я установил JCL с настройками по умолчанию, и установщик скинул все bpl-ки в папку:
C:\Users\Public\Documents\RAD Studio\6.0\Bpl\

Потом не деинсталлировав старую версию, я переустановил JCL, указав папкой для Bpl
D:\Work\D2009\!Build\Bpl\

В результате получилось, что пакеты Jcl*.bpl дублировались. При этом в папке C:\Users\Public\Documents\RAD Studio\6.0\Bpl\ была установлена сентябрьская версия, а в D:\Work\D2009\!Build\Bpl\ – последняя нестабильная версия из trunka. И всё работало без видимых проблем. Работало до тех пор, пока в JCL не изменили список юнитов пакета JclVcl, перенеся пару юнитов из пакета JclVersionControlExpert.dpk в JclVcl.dpk. И после того как я установил обновлённую версию, Delphi начали выдавать при старте эту ошибку.

Я настолько был уверен в том, что все bpl-ки у меня лежат только в папке D:\Work\D2009\!Build\Bpl\ что мне даже в голову не пришла мысль проверить это. В результате потратил кучу времени на поиск ревизии в которой появилась “проблема”, и убрал эти изменения. И уверенный в том, что проверил всё, зарегистрировал ошибку в баг-трекере Jedi. Там ответили, что повторить эту ошибку не удалось. Так что я решил ещё раз всё тщательно перепроверить, и, вуаля, нашёл дубликаты.

Надеюсь, этот пост послужит напоминанием тому, что при появлении ошибки Entry Point Not Found, первым делом необходимо проверить компьютер на дублирующиеся bpl в папках входящих в %path%. Потому что я встречаюсь с этой ошибкой уже не первый раз, и каждый раз забываю об этом.

Комментариев нет:

Отправить комментарий