Мой совет — когда уровни взаимодействия плагинов и основной программы заранее нельзя четко определить и взаимодействие может быть очень сложным, то в этом случае, на мой взгляд, лучшее решение — встраивать в программу какую нибудь скриптовую машину, например тот же FastScript и выполнять "позднее связывание" на скриптах, которые сами по себе могут быть очень просты.
При таком подходе нужно экспортировать в скриптовую машину возможные интерфейсы (классы, объекты, переменные, функции) основной программы. Загружаемые плагины должны при инициализации выполнять экспорт своих интерфейсов в скриптовую машину, которая конечно же должна быть общей у программы и плагинов. После чего можно загрузить и выполнить скрипт инициализации программы, который и выполнит необходимое связывание функционала. В этом случае нет необходимости на этапе проектирования кропотливо прорабатывать интерфейсы — все можно будет сделать потом и, главное, тонко "подстроить" программу непосредственно на клиенте.
vvu>Exe-шник вырос до 7 метров и решил я дальнейший функционал делать плагинами. Остановился на bpl после прочтения статьи Дмитрия Полщанова "Еще раз о Plugin's…", Трофимова Игоря "Подгружаемые модули (plugins) в Delphi" и других, и долгих раздумий и взвешиваний между dll и bpl.
vvu>Вопрос такой: можно ли, как-то заставить bpl видеть и работать с уже загруженным (главной прогой) модулем данных
vvu>Буду очень благодарен за помощь в этом вопросе, т.к. уж жутко лень реализовывать интерфейсы или хотя бы, если уж никак без них не обойтись, пожалуйста, подскажите их необходимый минимум.