基於Qt的海康威視SDK二次開發-攝像頭預覽-mingw編譯

海康威視攝像頭SDK,在海康威視的官網下載,地址:
http://www.hikvision.com/cn/download_61.html

本文講的是用window10 + qt 5.12 + mingw 編譯 ,非msvc 或者mfc visual studio 版本。

1. 導入SDK連接到Qt項目中,也就是導入dll動態鏈和.lib庫。

把程序所需要的.dll文件和相應的庫文件都拷貝到程序目錄下
注意:一個.dll文件所對應的庫文件,應該名字是相同的,有的.dll文件是存在依賴關係 的,必須同時存在才能使用。

2.  在Qt的項目文件中,導入庫文件,如:

LIBS += -L$$PWD/libs/ -lHCCore -lHCNetSDK -lPlayCtrl

LIBS += -L$$PWD/libs/HCNetSDKCom -lHCAlarm -lHCGeneralCfgMgr -lHCPreview

3.  將對應的.dll 文件拷貝到可執行文件的目錄下,也就是和.exe 同一個目錄,我demo裏就是debug中。

所需的文件:
請將設備網絡SDK開發包【庫文件】裏的HCNetSDK.dll、HCCore.dll、PlayCtrl.dll、SuperRender.dll、AudioRender.dll、HCNetSDKCom文件夾等文件均拷貝到bin文件夾下。

4. 然後就可以在程序中 使用SDK的函數了。

5.  demo 使用說明:直接編譯,並將build/debug文件夾中的dll文件拷貝到你自己的build/debug中

注意 如果要連接你的海康攝像機,請將程序中ip 賬號密碼等改成你自己的信息。

知識拓展:

鏈接庫可分爲ib和dll,這兩個都是庫,這裏說一下二者的區別,當Windows下一個工程編譯成庫時,可以有兩種方式,第一種是靜態庫,第二種是動態庫,靜態庫在編譯時讀取,動態庫在運行時讀取,生成靜態庫時只有lib文件,裏邊存放的就是函數的實現,生成動態庫時,lib和dll文件都有,其中lib中沒有函數的實現代碼,只存放了該實現代碼位於哪個dll中,dll中存放函數的實現代碼;我們在調用靜態庫時,代碼在鏈接階段,將去對應lib中尋找實現代碼,並進行鏈接,結束後,lib就沒用了;而調用動態庫時,代碼在鏈接階段也會去lib中尋找,不同的是,它只會留下標記,標識去哪裏找運行代碼,而不實際將dll中的實現鏈接進程序裏,因此程序運行時不需要lib,但是必須有dll。

參考鏈接:

基於Qt的海康威視網絡攝像頭SDK的二次開發(一)

基於Qt的海康威視SDK二次開發-攝像頭登陸、預覽和抓圖

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章