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其中第6和第7行的意思如果定義了serial_library,serialshared_export定義為q_decl_export,否則定義為q_decl_import。這就是把物件匯出的語句。#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
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 -lserial2.1.3 在main.cpp中新增標頭檔案這樣就可以直接呼叫共享庫中的物件或者函式了。includepath += $$pwd/include
dependpath += $$pwd/include
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...