Qt之呼叫外部DLL

2021-07-26 01:12:41 字數 964 閱讀 3495

宣告:事先我已經自己動手寫了乙個簡單的dll檔案(mydll.dll),c版介面的。首先,從dll中匯出了導入庫(.lib)檔案,dll中有兩個函式,原型如下:

void helloworld();    

//函式內部呼叫win32 api,功能是彈出乙個helloworld提示框

int add(

int a,

int b);  

//實現兩個數相加,並返回結果

下面分別通過顯示呼叫和隱式呼叫兩種方法,來模擬qt如何呼叫外部dll檔案中的功能函式,follow me....

預備知識:

1、如果在沒有導入庫檔案(.lib),而只有標頭檔案(.h)與動態鏈結庫(.dll)時,我們才需要顯示呼叫,如果這三個檔案都全的話,我們就可以使用簡單方便的隱式呼叫。

2、通常windows下程式顯示呼叫dll的步驟分為三步(三個函式):loadlibrary()、getprocadress()、freelibrary()

其中,loadlibrary() 函式用來載入指定的dll檔案,載入到呼叫程式的記憶體中(dll沒有自己的記憶體!)

freelibrary() 釋放dll所佔空間 

1、顯示呼叫 

qt提供了乙個 qlibrary 類供顯示呼叫。下面給出乙個完整的例子:

typedef int (*fun)(int,int); //定義函式指標,以備呼叫

int main(int argc,char **argv)

)下面是隱式呼叫的例項**:

int main(int argv ,char **argv)

{ hellowordl(); //呼叫win32 api 彈出helloworld對話方塊

qdebug()<

dll檔案的編寫介紹,可以參考

c++之dll

loadrunner 呼叫外部dll

dll函式編寫 c 裡新建工程class library 本人是用vs2005,在vs6貌像是 win32 dynamic link library 建立了乙個叫lrloaddll的工程,在lrloaddll.cpp裡編寫以下 define lrloaddll declspec dllexport ...

QT生成DLL,呼叫DLL

一.靜態庫的生成 1.測試目錄 lib 2.原始碼檔名 mywindow.h,mywindow.cpp,類mywindow繼承於qpushbutton,並將文字設定為 i m in class mywindow 3.編寫專案檔案 mywindow.pro 注意兩點 template lib conf...

QT生成DLL,呼叫DLL

一.靜態庫的生成 1.測試目錄 lib 2.原始碼檔名 mywindow.h,mywindow.cpp,類mywindow繼承於qpushbutton,並將文字設定為 i m in class mywindow 3.編寫專案檔案 mywindow.pro 注意兩點 template lib conf...