Добрый вечер.
Какие проблемы могут быть с подобным подходом:
//код dll
#define EXTERNAL __declspec(dllexport)
class EXTERNAL IMyInterface
{
public:
virtual void Method1()=0;
virtual void Method2()=0;
};
extern "c"
{
EXTERNAL IMyInterface * makeMyClass();
EXTERNAL void destroyMyClass(IMyInterface *);
};
?
Использование в программе, которая динамически загружает dll
//получить адреса функций makeMyClass, destroyMyClass
//...
IMyInterface * myClass = makeMyClass();
myClass->Method1();
destroyMyClass(myClass);
Компиляторы, использованные для создания dll и exe разные.