Точка входа в процедуру недопустима в JVCL (jclsysinfo)
Я установил последний Jedi VCL для Delphi (JVCL 3.49), используя install.bat (из папок jcl и jvcl соответственно), без ошибок. Проблема в том, что когда я запускаю Delphi 2010, я получаю много ошибок о неверной точке входа в jvcl bpls.
entry point invalid @jclsysinfo@jclcheckwinversion$qqrri in JvCore140.pbl
Я получаю эту ошибку во всех файлах Jv*.bpl и всегда с одной и той же точкой входа.
Я проверил, у меня нет старых файлов jcl/jvcl или jv*.bpl/jc*.bpl. Я не знаю, как решить эту проблему. Любое предложение?
2 ответа
При компиляции пакетов в Delphi (как это делают JCL и JVCL), для которых во время компиляции требуются другие пакеты, компилятор использует файлы dcp для требуемых пакетов, а не файлы bpl этих пакетов.
Например, JvCore.dpk
имеет Jcl
а также JclVcl
в его обязательном пункте среди некоторых пакетов RTL. Это означает, что при компиляции это займет Jcl.dcp
а также JclVcl.dcp
чтобы получить информацию о том, где процедуры / классы, в которых она нуждается, находятся в bpl.
Эти файлы dcp большую часть времени (если не указано иное - см. Следующий абзац) находятся в папке DCP, которая находится рядом с папкой BPL.
Если используемый им dcp не совместим с bpl, который он находит при загрузке, вы получите эти ошибки. Убедитесь, что у вас нет старых файлов bpl и dcp, которые может найти компилятор. В настройке JCL вы можете указать, куда он их помещает, а установка JVCL помещает их в тот же каталог, что и файлы dcu.
Кроме того, если у вас установлены разные версии Delphi, это может ухудшиться, потому что обычно файлы dcp не имеют суффикса. Если каталог, в который он помещает эти файлы, находится в переменной PATH, могут быть найдены неправильные версии. Однако каталог DCP не помещается в PATH при установке Delphi, а только в каталог BPL.
(Пока я писал это, Стефан Глиенке опубликовал ответ, в котором содержится гораздо больше полезной информации, но я все равно опубликую его, потому что это легко проверить, если вас интересует только одна версия Delphi)
Я не уверен, что следующее будет работать для вас, потому что у меня не установлен D2010, чтобы проверить его. Вы можете проверить это довольно быстро, попробовав использовать только один файл.Dpk на шаге 4.
Обратите внимание, что я всегда устанавливаю пути вывода для файлов BPL, DCP и DCU в папку Lib2 в папке установки версии Delphi. Таким образом, я знаю, где они все, так что легче прибраться, если что-то пойдет не так.
Я удалил JCL и JVCL и удалил все файлы JV*.BPL, .DCP и.DCU
Я запустил JCL install .bat и проигнорировал все запросы на добавление папок в системный PATH, потому что моя папка Lib2 уже находится в PATH.
В папке для моей версии Delphi ниже JVCL\Packages я отредактировал все файлы.Dpk, чтобы использовать мою папку Lib2 для выходных файлов BPL, DCP и DCU. это немного утомительно, но нужно сделать только один раз, и его можно упростить, используя макрос клавиатуры.
Затем, используя инструментальный пакет IDE, скомпилировал и установил все файлы.Dpk JVCL, которые имеют "Design" в своих именах и которые я хочу установить.
Все они установлены без сообщения об ошибке, которое вы получаете.