Я хотел бы добавить систему плагинов dll в свое приложение на С++.
Прочитав все, что смог найти по теме, я буду использовать интерфейс класса, который имеет только чистые виртуальные функции и базовые типы данных. Каждая подключаемая DLL-библиотека будет получать классы из этого интерфейса и предоставлять их с помощью механизма регистрации. Он будет включать механизм уничтожения, гарантирующий, что new и delete для этого класса не будут вызываться через границу DLL.
Но куда мне импортировать и экспортировать интерфейс? Нужно ли мне делать своего рода фиктивную DLL без кода, только экспортируя объявление класса? Или я могу никуда не импортировать/экспортировать класс и просто использовать его как заголовок как в приложении, так и в плагинах, передавая только указатели на класс между приложением и плагинами?
Спасибо