Короткая версия
- Мой пакет времени разработки не может установить
- , поскольку моя библиотека времени выполнения библиотека пакетов bpl
- требуется экспорт
@Classes@TStream@Write$qqrpxvi
из vcl50.bpl
- , который не существует
Длинная версия
При попытке установить design-пакет time , Delphi 5 получает ошибку загрузчика:
![enter image description here](https://i.stack.imgur.com/rI8vJ.png)
Точка входа в процедуру @ Classes @ TStream @ Write $ qqrpxvi моглане находиться в библиотеке динамических ссылок c: \ program files (x86) \ borland \ delphi5 \ Projects \ Bpl \ AvatarDateTimePickerD5.bpl.
После очистки диалогового окна, отображаемого загрузчиком, Delphi показывает собственную версию этой же ошибки:
![enter image description here](https://i.stack.imgur.com/8TzDP.png)
Итак, я проверяю файл
Я использую Зависит , чтобы проверить экспорт в dll:
c:\program files (x86)\borland\delphi5\Projects\Bpl\AvatarDateTimePickerD5.bpl
И, конечно же, есть нет экспорт с именем:
@Classes@TStream@Write@qqrpxvi
На самом деле экспорт не начинается с @ Classes вообще :
![enter image description here](https://i.stack.imgur.com/kMXrj.png)
Убедитесь, что он загружает правильный
Поэтому я использую Process Monitor , чтобы убедиться, что он читает правильный файл.И это:
![enter image description here](https://i.stack.imgur.com/59IAS.png)
Итак, проверьте сборку во время выполнения
Как вы помните, обычно есть два пакета:
- ContosoGrobberD5 : время выполнения
- ContosoGrobberD5D : время разработки
В данном случае это пакет времени разработки , который загружает свою зависимость от пакета времени выполнения :
AvatarDateTimePicker D5 .bpl
Итак, я загружу ранее сгенерированный run-time пакет, чтобы посмотреть, как он собирается, и он собирается без инцидентов:
![enter image description here](https://i.stack.imgur.com/GyGrc.png)
и записывает в ожидаемое местоположение.И он выполняет все операции записи в файл:
![enter image description here](https://i.stack.imgur.com/PWukn.png)
![enter image description here](https://i.stack.imgur.com/12WWf.png)
Это успешно, правильно,и намеренно, не генерируя экспорт DLL с именем:
@Classes@TStream@Write@qqrpxvi
Но соответствующий пакет design-time утверждает, что ему нужен такой импорт.
Зависит говорит, что не совсем
Если я запускаю Зависит от времени разработки bpl, я вижу сбойную цепочку:
- AvatarDateTimePickerD5D.bpl (время разработки dll)
- AvatarDateTimePickerD5.bpl (время выполнения dll)
- vcl50.bpl
- Отсутствует экспорт :
@Classes@TStream@Read$qqrpvi
- Отсутствует экспорт :
@Classes@TStream@Write$qqrpxvi
![enter image description here](https://i.stack.imgur.com/zyO0j.png)
Итак, очевидно, что vcl50.bpl
не хватает для экспорта
Проверьте vcl50.bpl для экспорта @ Classes @ TStream @ Write
Так что я наблюдаю за операцией на Insвысокий пакет времени разработки , и после некоторой охоты он находит его в пути:
![enter image description here](https://i.stack.imgur.com/0ZHkb.png)
В папке "System32
" :
C: \ Windows \ SysWOW64 \ vcl50.bpl
Поэтому я проверяю экспорт vcl50.bpl
.И это правильно, нет экспорта @Classes@TStream@Write$______
:
![enter image description here](https://i.stack.imgur.com/4bzYy.png)
И это выглядит как файл:
![enter image description here](https://i.stack.imgur.com/dAFtw.png)
Создано : 1/24/2000 4:01 SHA-1 : 29398F5CD966335EB38377962B12780DDEA9DBDC
Так что же происходит?