Вопрос по сути можно озаглавить так: "Организация интерфейса между программными модулями".
На спеке стандатртов на динамические библиотеки (как впрочем и почти ни на что с программной стороны) нету.
Поэтому каждый волен выбирать - либо подстраиваться под уже написанную программу с плагинами, либо создавать свой стандарт.
По сути - любой подгружаемый плагин должен:
1. Быть идентифицирован программой как плагин (скажем по сигнатуре в начале файла).
2. Инициализирован какимто образом. Скорее всего плагину должны быть переданы адреса какогото блока данных, через который осуществляется взаимодействие, а от плагина должны быть получены точки входа в его процедуры.
3. Собственно взаимодействие программы с плагином в процессе ее работы. Тут все просто - просто программа, осуществляя какое-либо действие должна будет (до него, после или по какомуто условию) вызвать одну из процедур плагина по полученной при инициализации точке входа.
Очень трудно оговаривать систему плагинов в общем виде. Для каждой отдельной программы надо четко определить что и как можно расширять плагинами, а что должно оставаться неизменным. Конкретики надо.




Ответить с цитированием