總結最近,由於工作需求,需要寫乙個相機的外掛程式,雖然沒辦法把具體的**貼出來,不過,還是在這裡做乙個比較詳細的總結,至少把一些步驟給講清楚。
首先,你建立外掛程式一定在他人的**上,寫乙個適配於當前系統功能的外掛程式,所以,應該會有些他人的外掛程式讓你模仿。你首先要做的就是,在他人外掛程式的基礎上,把框架搭建出來。比如該外掛程式中pro檔案的書寫,主要程式分為哪幾個部分。還有,一些巨集定義,看一下別人是怎麼寫的,我可以把這兩部分貼出來,你們稍微借鑑一些,也可。
pro 檔案:
#----
----
----
----
----
----
----
----
----
----
----
-----#
# project created by qtcreator 2020-08-28t11:12:57
##--
----
----
----
----
----
----
----
----
----
----
-------
template = subdirs
qt +
= core gui xml network
target = drivercameradahengg3uc
template = lib
config +
= plugin
include(.
./..
/../config/common_x64.pri)
include(.
./cameraabstract/camera_abstract.pri)
#以下這條message用於檢查工程路徑設定是否正確
target_info=$$join
(target,,,
" project_root==>"$$project_root)
message
($$target_info)
includepath +=.
/include
includepath +
= $$project_root/devices/on_drivercall/include
destdir = $$project_libdir/cameraplugin #其他目標檔案生成路徑
dependpath +
= $$project_bindir #依賴路徑 $$pwd/..
/..libs +
=-l$$project_libdir #libs存放的路徑 $$pwd/..
/..#for debug
config
(debug, debug|release)
moc_dir +=.
/debug/$$
objects_dir +=.
/debug/$$
}else
moc_dir +=.
/release/$$
objects_dir +=.
/release/$$
}
這裡面有比較需要注意的乙個點就是庫檔案的引用,因為你要寫外掛程式的話,一定是有乙個第三方的庫檔案給你的,所以,你就需要合理的把它引用進來,你才能用到該相機自帶的一些函式,從而實現你的功能。至於如何引用第三方庫的話,你可以看看這個:qt隱式呼叫第三方庫。作為一種參考,但有時也沒那麼複雜,可以自己網上搜一搜答案。
這裡,最後有乙個for debug。那個的作用是為了有時你是用debug模式,而有時你有需要用到release模式,為了區分那個exe檔案,我們所做的一些操作。
還有一點就是注意裡面的include path的這個操作。其實這個include path所包含進來的那些檔案都是外面人家留給我們的介面,我們在寫的時候, 就需要按照這些介面去實現對應的功能。
這一步,其實是要貫穿於你整個寫外掛程式的過程的,因為相機到底有什麼功能,你其實是不知道的,你也不知道他到底留給你的介面函式的名稱是什麼,也不知道怎麼去獲取對應的資料。而這些內容,sdk和demo中都會給你答案,也許有時候,整個demo會是vs的檔案的,你也不用擔心,開啟對應版本的vs的demo。然後,可以找一下main函式到底在**,從那裡開始看起,會是比較方便的。
靠人不如靠己第一次~
靠人不如靠己第二次~
靠人不如靠己第三次~
靠人不如靠己第四次~
靠人不如靠己第五次~
上面那樣就是基本整個相機外掛程式的書寫流程了,注意,你所要寫的相機有可能有第三方帶的軟體可以測試,你可以找一找,注意,要修改自己的ip位址跟相機時是同一網段,相信整個步驟,你應該是會的。還有一些沒講的小問題,我有時候也都記錄在部落格裡面了,有需要的可以點進來看一下。加油!衝!!具體實操可以參考下這兩篇文章:
大華相機的採圖功能的qt實現外掛程式,
大恆相機採圖功能的qt實現外掛程式。
Qt 外掛程式系統
qt 有兩種與外掛程式有關的 api。一種用來擴充套件 qt本身的功能,如 自定義資料庫驅動 影象格式 文字編譯碼等,稱為 higher level ap 既高階介面。另一種用於應用程式的功能擴充套件,稱為 lower level api 低階介面。前一種是建立在後一種的基礎之上的。前一種是擴充套件...
Qt 外掛程式路徑
qt manual 已經專門介紹了deploying plugins 的問題。半年前qt 外掛程式學習 一 也簡單整理了一點路徑相關的問題。可是,一直以來沒理清 外掛程式 編譯碼外掛程式 資料庫外掛程式.到底是如何被載入的?如果我們需要開啟或儲存乙個jpg格式的,那麼需要載入jpg的外掛程式。程式去...
Qt 外掛程式總結
1 介面的定義 step 1 定義介面 class regexpinte ce virtual qstring regexp const qstring message 0 step 2 宣告介面 使用 q declare inte ce 巨集,是為了讓qt元物件系統知道該介面,這樣以來,在執行時便...