Qt提供了一個 QLibrary 類供顯示呼叫。下面給出一個完整的例子:
testDLL.dll為自定義的dll檔案,將其複製到程式的輸出目錄下就可以呼叫。
#include <QApplication>
#include <QLibrary>
#include <QDebug>
#include <QMessageBox>
typedef int (*Fun)(int,int); //定義函式指標,以備呼叫
int main(int argc,char **argv)
{
QApplication app(argc,argv);
QLibrary mylib("testDLL.dll"); //宣告所用到的dll檔案
int result;
if (mylib.load()) //判斷是否正確載入
QMessageBox::information(NULL,"OK","DLL load is OK!");
Fun open=(Fun)mylib.resolve("add"); //援引 add() 函式
if (open) //是否成功連線上 add() 函式
QMessageBox::information(NULL,"OK","Link to Function is OK!");
result=open(5,6); //這裡函式指標呼叫dll中的 add() 函式
qDebug()<<result;
}
else
QMessageBox::information(NULL,"NO","Linke to Function is not OK!!!!");
QMessageBox::information(NULL,"NO","DLL is not loaded!");
return 0; //載入失敗則退出
Qt提供了一個 QLibrary 類供顯示呼叫。下面給出一個完整的例子:
testDLL.dll為自定義的dll檔案,將其複製到程式的輸出目錄下就可以呼叫。
#include <QApplication>
#include <QLibrary>
#include <QDebug>
#include <QMessageBox>
typedef int (*Fun)(int,int); //定義函式指標,以備呼叫
int main(int argc,char **argv)
{
QApplication app(argc,argv);
QLibrary mylib("testDLL.dll"); //宣告所用到的dll檔案
int result;
if (mylib.load()) //判斷是否正確載入
{
QMessageBox::information(NULL,"OK","DLL load is OK!");
Fun open=(Fun)mylib.resolve("add"); //援引 add() 函式
if (open) //是否成功連線上 add() 函式
{
QMessageBox::information(NULL,"OK","Link to Function is OK!");
result=open(5,6); //這裡函式指標呼叫dll中的 add() 函式
qDebug()<<result;
}
else
QMessageBox::information(NULL,"NO","Linke to Function is not OK!!!!");
}
else
{
QMessageBox::information(NULL,"NO","DLL is not loaded!");
return 0; //載入失敗則退出
}
}