...
#include "koks.h"
...
void Gooo::ButClick2()//статически
{
int aaaa=Fun(44);
QMessageBox::warning(this,"1",QString::number(aaaa),QMessageBox::Save,QMessageBox::Save);
}
void Gooo::ButClick()//динамически
{
int aaaa=0;
QLibrary myLib("koks.dll");
myLib.load () ;
if(!myLib.isLoaded ())QMessageBox::warning(this,"1","!myLib.isLoaded ()",QMessageBox::Save,QMessageBox::Save);
if(myLib.isLoaded ())QMessageBox::warning(this,"1","myLib.isLoaded ()",QMessageBox::Save,QMessageBox::Save);
//----------------------------------------------------------------------------------------------------------
typedef int (*MyPrototype)();
MyPrototype myFunction = (MyPrototype) myLib.resolve("Fun2");
if (myFunction)aaaa=myFunction();
else QMessageBox::warning(this,"1","No"+myLib.errorString(),QMessageBox::Save,QMessageBox::Save);
QMessageBox::warning(this,"1",QString::number(aaaa),QMessageBox::Save,QMessageBox::Save);
//----------------------------------------------------------------------------------------------------------
typedef int (*MyPrototype2)(int);
MyPrototype2 myFunction2 = (MyPrototype2) myLib.resolve("Fun");
if (myFunction2)aaaa=myFunction2(33);
else QMessageBox::warning(this,"1","No"+myLib.errorString(),QMessageBox::Save,QMessageBox::Save);
QMessageBox::warning(this,"1",QString::number(aaaa),QMessageBox::Save,QMessageBox::Save);
//----------------------------------------------------------------------------------------------------------
}
lib_proverka.pro
TEMPLATE = app
TARGET =
DEPENDPATH += .
INCLUDEPATH += .
LIBS += koks.dll
CONFIG += release
# Input
HEADERS += koks.h MoiClass.h
FORMS += untitled.ui
SOURCES += MoiClass.cpp shablon.cpp<- тут main
ну вот как-то так
(если *.h не прописывать в *.срр при сборке либы
и в проге прототипы писать без extern "C"
то либу можно подключить только статически)
(для динамического подключения в срр должен подключаться h и extern можно не писать, но тогда
статич не подключишь на этапе линковки не найдет реализацию)
lib на qt3 (можно qt4) gccv2 (gccv4), программа на qt4(но падает)