win10系统Qt配置海康HCSadpSDK局域网设备搜索
生活随笔
收集整理的這篇文章主要介紹了
win10系统Qt配置海康HCSadpSDK局域网设备搜索
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在Qt項目文件.pro所在的目錄,新建一個libs文件夾和include文件夾,將Sadp.lib復制到libs目錄里,將Sadp.h文件復制到include目錄里
在.pro文件里添加以下命令
INCLUDEPATH += \-L. $$PWD\include LIBS += \-L. $$PWD/libs/Sadp.lib將下圖的dll和sys文件復制到項目生產的exe文件所在目錄:
libeay32.dll就是個大坑,它與海康SDK犯沖突,導致海康SDK無法正確獲取NVR等設備的信息,這個不要復制過去
簡單測試代碼:在合適的位置調用findDevice(),更多功能看海康文檔
#include "Sadp.h" //設備信息回調函數 void __stdcall SadpDataCallBack_V40(const SADP_DEVICE_INFO_V40 *lpDeviceInfoV40, void* pUserData) {qDebug()<< " IP " << lpDeviceInfoV40->struSadpDeviceInfo.szIPv4Address; //設備ipqDebug()<<" Mac "<< lpDeviceInfoV40->struSadpDeviceInfo.szMAC; //設備Mac地址qDebug()<<" SerialNO "<< lpDeviceInfoV40->struSadpDeviceInfo.szSerialNO; //設備序列號qDebug()<<" Result "<< lpDeviceInfoV40->struSadpDeviceInfo.iResult; //消息類型: 1.設備上線, 2.設備更新, 3.設備下線qDebug()<<"\r\n----------------------------------------\r\n";}void HKworks::findDevice()//自己封裝的類 {//開啟sadp日志 3(打印所以日志) "C:\\SadpLog\\"(日志目錄) false(保留所有日志文件)SADP_SetLogToFile(3, "C:\\SadpLog\\", false); //開啟sadp服務int iRet = SADP_Start_V40(SadpDataCallBack_V40);if (iRet == 0){//開啟失敗,獲取錯誤碼int iError = SADP_GetLastError();qDebug()<<"SADP_Start_V40 Failed! Err "<<iError;}SADP_SetAutoRequestInterval(10);}將Sadp.h保存為utf8-bom格式,找到以下代碼
#if defined _WIN32 || defined _WIN64 #define CSADP_API extern "C"__declspec(dllimport) #elif defined __linux__ || defined __APPLE__ #define CSADP_API extern "C" #endif修改#define CSADP_API extern “C”__declspec(dllimport)為(在C"后面加了一個空格)
#define CSADP_API extern "C" __declspec(dllimport)海康HCNetSDK和Sadp有重復定義的內容,編譯器4005警告,在頭文件里所有#include 的上邊加以下命令
#ifdef _MSC_VER #pragma warning (push) #pragma warning (disable : 4005) #include "HCNetSDK.h" #include "Sadp.h" #pragma warning (pop) #pragma warning (default : 4005) #endif總結
以上是生活随笔為你收集整理的win10系统Qt配置海康HCSadpSDK局域网设备搜索的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 第一阶段SCRUM冲刺 08
- 下一篇: 学习笔记(32):Python网络编程并