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; //设备ip
       qDebug()<<"     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
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值