Каркас плагина Delphi

I want to design Delphi plugin framework. There are three options:
1. DLL
2. BPL
3. COM interface

Every option has some disadvantage.

DLL - Promblem with MDI apllication, forms from plugin cannot be embeded to the host exe - mdi application.
BPL - Every *.bpl plugin and *.exe host application must be compiled with the same version of Delphi.
COM - Interfaces {xxx-xx-xxx-xx} must be registered in system, (regsvr) So plugin framework cannot be portable!

Is everything true what I wrote above? If not, please correct me, or is there some other possibility?
thanks

12
задан Peter 20 August 2010 в 07:45
поделиться

4 ответа

Да, вы написали правильно. Все это имеет свои преимущества и недостатки, вопрос в том, что для вас важно, вы не сказали, что хотите сделать, поэтому мы не можем сказать вам, как это сделать.

В общем, я бы выбрал BPL по умолчанию, использовал бы DLL, если вам нужно использовать его из приложений, отличных от Delphi, и выбрал бы COM, только если вам действительно нужно.

Альтернатива - не создавать свою собственную, поскольку доступно несколько фреймворков для плагинов Delphi.

Кроме того, эта тема обсуждалась здесь раньше, посмотрите:

8
ответ дан 2 December 2019 в 22:37
поделиться

Я бы посмотрел на Гидру из Remobjects.

Другим кандидатом может быть комбинация PaxCompiler (создание сценариев) и EControl Form Designer (дизайнер форм).

0
ответ дан 2 December 2019 в 22:37
поделиться

Еще одна возможность - интерфейс сценариев, например, с помощью Python или Pascalscript. У этого подхода есть много преимуществ, не последнее из которых - то, что исходный текст плагина также является исполняемым файлом, что облегчает отладку и совместное использование.

1
ответ дан 2 December 2019 в 22:37
поделиться

Мы используем библиотеки DLL, даже если работаем только с приложением Delphi. Формы Dll встроены в основную форму и используют вкладки вместо MDI. Для правильной работы DLL мы также используем диспетчер общей памяти и собираем пакеты времени выполнения: vcl, rtl и наш собственный пакет.

0
ответ дан 2 December 2019 в 22:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: