У меня есть приложение, которое должно быть реализовано в виде шаблона плагина.
Плагины находятся в файлах dll, и я загружаю их на лету, в зависимости от параметра, заданного пользователем через командную строку. То есть, если пользователь хочет использовать plugin1, он вводит это имя в качестве параметра в командной строке при запуске приложения, и я должен загрузить его на лету.
Поскольку я использую шаблон плагинов, у меня есть интерфейс (поскольку он работает в c ++, это абстрактный класс), который реализуют все классы плагинов.
Моя дилемма, где поставить интерфейс класса? Для того, чтобы построить dll, я должен иметь объявление интерфейса в каждой dll.
Я хочу избежать необходимости менять интерфейс во всех библиотеках, когда есть необходимость в изменении интерфейса.
С другой стороны, если я объявлю интерфейсный класс в основном приложении, мои библиотеки не будут скомпилированы и собраны?
У вас есть предложение о том, как извлечь интерфейсный класс из библиотеки DLL и поместить его в основное приложение, поэтому, когда я захочу изменить его код, его не нужно будет менять в дюжине мест (то есть в каждой DLL ).
Заранее спасибо,
Приветствия