Подключаемые модули AFAIK Qt реализованы в виде разделяемых библиотек (.so в Unix / Linux и DLL в Windows). Различия между ними такие же, как с плагинами и библиотеками в целом.
Это означает, что архитектура подключаемого модуля не зависит от метода связывания .
Они, как правило, рассматриваются как подключаемые / динамические ссылки и не подключаемые / статические ссылки.
Базовое приложение определяет интерфейс и контракт на обмен данными (т.е. API), через который отдельные модули могут взаимодействовать с приложением и предоставлять функциональные возможности через приложение. Простая отправка новых модулей в DLL не устраняет необходимость в том, чтобы само приложение обнаружило эти DLL и знало, как выполнить логику внутри. Это суть плагина архитектуры. В общем случае DLL предоставляют только список процедур или функций. Переменные, классы, объекты внутри библиотеки не доступны напрямую внешним процессам. Написание плагина включает в себя перемещение большей части или всего соответствующего кода в DLL, где можно напрямую ссылаться на все переменные и объекты.
Что-то вроде Eclipse , в котором вы помещаете свой плагин в заранее определенный каталог, и при следующем нажатии на какое-либо меню вы увидите новые записи. Все это без перезапуска вашего app
или запуска новой версии exe
.