QT學習》QT生成與呼叫共享庫

2022-09-16 03:21:08 字數 2801 閱讀 6704

1.建立c++庫

1.1點選new project

1.2選擇庫模板

選擇「library

」中的」c++庫」,再點選「choose

」。1.3選擇共享庫

給共享庫取個名稱,並指定生成檔案存放路徑。再點選「下一步」。

1.4選擇編譯器

再點選「下一步」。

1.5選擇所需要的模組

預設選擇qtcore(

qtcore

模組提供核心的非圖形使用者介面功能,所有其他

qt模組都依賴於這個模組,如果您使用

qmake

來構建您的專案,則預設將

qtcore

包含在內

)相信,大部分人封裝動態鏈結庫的時候是不需要將介面封裝的,只需要封裝核心**,故我們在此不選擇qtgui。但如果需要將圖形介面一起封裝,就需要選擇該項。

再點選「下一步」。

1.6專案管理

點選」完成「。

1.7點選專案,勾掉shadow build,使

.dll

不生成在

debug

目錄中,生成在我們自己建立的目錄下面,方便查詢和使用

1.8 在

.pro

檔案中,新增如下**

destdir =..\mydebug

使生成的.dll檔案放在該目錄下,自動建立該目錄。

1.9 點選執行,即可生成。(此彈框不用管它,代表編譯成功,已生成檔案)

注意:

當建立完c++庫的工程後, 可以看到qt自動生成了乙個名為serial_global.h的檔案。其中serial是我工程的名字。

#ifndef serial_global_h

#define serial_global_h

#include #if defined(serial_library)

# define serialshared_export q_decl_export

#else

# define serialshared_export q_decl_import

#endif

#endif // serial_global_h

其中第6和第7行的意思如果定義了serial_library,serialshared_export定義為q_decl_export,否則定義為q_decl_import。這就是把物件匯出的語句。

serial_library在.pro中定義

在對應的serial.h中可以看到

在serial前面就跟著serialshared_export。就相當於把serial匯出。所謂的匯出,就是將其編譯成乙個dll檔案後,其他的檔案可以使用這個匯出類。

所以如果自己定義的函式不在類裡面,就要單獨的匯出。

也可以用extern "c" 把裡面的函式全部包含進去。

2.呼叫c++庫

2.1 手動新增

2.1.1在檔案目錄建立include目錄和lib目錄

把對應的庫放到lib目錄中,把對應的標頭檔案放在include目錄中。

2.1.2 在.pro中新增對應資訊

libs += -l$$pwd/lib -lserial

includepath += $$pwd/include

dependpath += $$pwd/include

2.1.3 在main.cpp中新增標頭檔案這樣就可以直接呼叫共享庫中的物件或者函式了。

2.2 自動新增庫

直接點選test,然後單間右鍵。裡面有乙個「新增庫」。

qt呼叫import sys庫 用qt呼叫第三方庫

宣告 事先我已經自己動手寫了乙個簡單的dll檔案 mydll.dll c版介面的。並且用我前兩篇有關dll文章裡面的方法,從dll中匯出了導入庫 lib 檔案,dll中有兩個函式,原型如下 void helloworld 函式內部呼叫win32 api,功能是彈出乙個helloworld提示框 in...

Qt學習 qt共享記憶體的使用

類常用的操作 1 qsharedmemory類物件的建立 利用qsharedmemory類建立例項物件時,必須為該共享記憶體指定關鍵字 即為該共享記憶體起乙個名字 只有當共享記憶體被設定了關鍵字之後,才可以執行建立 create 關聯attach 等操作。為共享記憶體指定關鍵字有兩種方法 通過建構函...

QT生成DLL,呼叫DLL

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