Qt學習筆記 19 工程外掛程式

2021-10-08 21:57:17 字數 2357 閱讀 6211

這個星期,主要的工作內容在乙個較為大型的工程上面加上我寫的外掛程式。同時,將其執行起來,下面,我將寫一下整個流程。

根據廠家給的第三方庫,我們要呼叫它的庫才能寫出對應他們板子的外掛程式。這個第三方庫主要包含三大部分的內容。.h,.dll,.lib檔案。有可能還有其他的一些支援檔案,比如裡面的這個2023年8月5日(無法載入外掛程式(dll檔案)的問題)這個東西。

在外掛程式中,我們對外掛程式要實現的功能進行編寫。包括初始化裝置,啟動裝置,讀寫裝置等等。這裡應該注意,如果你之前已經有乙個較大的檔案,那麼有可能裡面有關於寫這種外掛程式的介面,你直接繼承這個介面,按照裡面要求寫的功能進行編寫就可以了。

你還應該載入lib檔案,載入就參考這個也可以qt用法–新增外部庫檔案(lib檔案)

對外掛程式進行編譯,就可以生成我們自己的dll檔案了,注意,應設定好dll檔案生成的位置。

外掛程式編寫結束後,我們就應該在呼叫函式中,對外掛程式進行載入了,取得該外掛程式的根的部分,將該外掛程式加入外掛程式集合之中。將該外掛程式轉成成為介面物件。

在主函式中就可以呼叫該介面物件實現一些功能了。

先貼一下**,然後一行一行的解釋整個pro檔案。突然發現這個部落格講的會比我更清楚,你可以先看一下這個qt開發中如何正確的編寫.pro檔案及詳細說明

qt       +

= core network xml

target = driverboardnkdio #這個配置項用來指定最後生成的目標應用程式的名稱

template = lib # 建立乙個庫的makefile。#因為我們是要生成庫檔案,所以選擇這個lib

config +

config +

= c++

11include

(driveboardnkdio.pri)#這個include,可以把一些檔案包含到工程裡面,並放在恰當的位置

include(.

./..

/../config/common_x64.pri)

include(.

./driverboardabstract/driverboardabstract.pri)

output_target_info=$$join

(target,,,

" project_root==>"$$project_root)#工程資訊的詳細說明

message

($$output_target_info)

#這個路徑鏈結時使用,當作鏈結路徑使用

destdir = $$project_bindir/boardplugin #目標檔案生成路徑,project_bindir=$$pwd/..

/..includepath +=.

/include # 將所要依賴的檔案或庫放在includepath之中,程式會自動搜尋

includepath +=.

/lib #將.**件的路徑加入該includepath之中

#includepath +="e:/qt_plugin/day1_83/day1_83_3/devicedemo-20200731/program/devices/board_plugin/driveboardnkdiox64/lib";

includepath +=.

./driverboardabstract/include

includepath +

= $$project_root/devices/on_drivercall/include

dependpath +

= $$project_bindir #依賴路徑,這裡大寫的,看不懂的,其實就是乙個路徑只是重新命名了。

libs +

=-l$$project_libdir_board# 這是依賴的庫檔案的路徑

libs +

=-lnkdiox64# 這裡是依賴的庫檔案的名稱

#libs +=-l $$pwd/../../../../nkdio_sdk -l nkdio

``#win32: libs += -l$$pwd/../../../../nkdio_sdk/ -lnkdiox64

includepath +

= $$pwd/..

/../

../.

./nkdio_sdk

dependpath +

= $$pwd/..

/../

../.

./nkdio_sdk

contains

(qt_arch,x86_64)

config

(debug, debug|release)

這是自己的理解,若有偏差,請多指教。

Qt 外掛程式路徑 筆記

qt manual 已經專門介紹了deploying plugins 的問題。半年前qt 外掛程式學習 一 也簡單整理了一點路徑相關的問題。表面的答案 qtdir plugins imageformats 注 如果你只是想讓外掛程式能工作,對其他不感興趣,直接在你的應用程式所在目錄下建立乙個 ima...

Qt學習筆記 工程檔案解說

變數template描述了為建立目標檔案而採用何種模板,即生成何種形式的makefile檔案.qmake 工具定義了5種模板 l 庫lib,為建立引用程式庫而建立makefile檔案 l 子工程 subdirs,為建立子目錄下的目標檔案建立乙個makefile檔案,子目錄通過變數subdirs指定 ...

C 學習筆記 19

std map 和 std unordered map 特性和各操作時間複雜度?1 std map對應的資料結構是紅黑樹。紅黑樹是一種近似於平衡的二叉查詢樹,裡面的資料是有序的。在紅黑樹上做查詢 插入 刪除操作的時間複雜度為o logn 2 std unordered map對應雜湊表,雜湊表的特點...