Re[3]: Передача наборов данных в BPL
От: Sinclair Россия https://github.com/evilguest/
Дата: 02.03.04 11:22
Оценка:
Здравствуйте, Kirill Bezrukov, Вы писали:
KB>Смысл в том, чтобы это все разные люди независимо разрабатывали (не видя код друг друга) и был юнит интерфейсов функций, который подключен к основной программе. Т.е. при подключение минимальное число действий производится.
Ну все правильно. Вон компоненты же разрабатывают люди независимо от борланда? И никаких экспортов там нет.
Короче, делается это вот таким примерно образом:
1. Делаем юнит, в котором объявлены необходимые интерфейсы. Как правило, проще всего работать с абстрактным классом или несколькими классами.
2. Помимо декларации этого абстрактного класса, делаем в этом же юните механику регистрации классов-наследников. Аналогично RegisterClass/FindClass.
3. Все это добро выносится в отдельный пакет.
4. Теперь у нас есть две команды: одна разрабатывает "потребителя" (приложение), другая "поставщика" (пакет)
5. Первая команда реализует логику поиска и загрузки пакетов через LoadPackage, а потом использование зарегистрированных классов. Благодаря наличию общего абстрактного предка со всеми можно работать примерно одним и тем же образом. Ясен перец, что приложение пользует зарегистрированные классы через общий пакет (см. п.3.)
6. Вторая команда реализует пакет, который зависит от общего пакета. В initialization/finalization юнитов выполняется работа по регистрации/дерегистрации классов (см. п.2).

Теперь при статической линковке все юниты (из приложения, из общего пакета, и из пакетов-плугинов) встраиваются прямо унутрь exe и все работает само. При use runtime packages код раскидывается по bpl.

Пример такого приложения опубликован на RSDN.

KB>Вообще в с пакетами так можно работать, через exports ?

Не нужно.
... << RSDN@Home 1.1.3 beta 2 >>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.