("Lib1::showButton()");
Това действие не е възможно при която и да е ОС, не може да вземеш указател към статична функция от клас без да си създал класа, тъй като няма кой да извика конструктора.
Това се прави така:
class Myclass {
Myclass() {}
int func1();
char *funcN();
};
extern "C"
{
Myclass* getClass();
typedef Myclass*(*func)();
}
Хедър файла трябва да е и в двата проекта
В динамичната библиотека
int Myclass::func1() { return 50; }
char* Myclass::funcN() { return "This is version 1.0"; }
Myclass* getClass()
{
Myclass *p = new Myclass;
return p;
}
В програмата, къде зареждаш библиотеката
QLibrary *l = new QLibrary("lib1.dll");
l->load();
Myclass *f = (func)l->resolve("getClass");
if( f != NULL )
puts( f->funcN() );
exampleНа линукс библиотеките трябва да са импортнати в Path или сложи симболик линк в /usr/lib/ към твойта библиотека