Здравствуйте, Gorn, Вы писали:
G>Возможно ли собрать dll, использующей класс, не раскрывая ей реализации этого класса?
выше есть советы.
у меня паралельный вопрос — архитектурно правильно будет реализовать в dll функции, имеющие параметром интерфейсы (указатели на класс)? тогда все скомпилится, и функция сможет использовать классы, если хедеры иметь. но правильно ли это будет с точки зрения построения программы?
Здравствуйте, Ovl, Вы писали:
Ovl>у меня паралельный вопрос — архитектурно правильно будет реализовать в dll функции, имеющие параметром интерфейсы (указатели на класс)? тогда все скомпилится, и функция сможет использовать классы, если хедеры иметь. но правильно ли это будет с точки зрения построения программы?
да вроде правильно, всегда так делаем
что-то типа:
== header ==
class Interface
{
public:
virtual void release() = 0;
virtual void somefunc() = 0;
};
extern Interface* CreateObject();
== exe side ==
void f()
{
Interface *a=CreateObject(); // так создаёшь
a->somefunc(); // так получаешь удовольствие
a->release(); // так удаляешь
}