栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

QT 海康网络摄像机SDK6.1

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

QT 海康网络摄像机SDK6.1

示例:新建一个QT 控制台项目在pro 右键导入库->外部库 HCNetSDK.lib ,HCCore.lib,

右键在添加头文件HCNetSDK.h如下

hiksdk.pro

QT -= gui

CONFIG += c++17 console
CONFIG -= app_bundle

SOURCES += 
        main.cpp

qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target

win32: LIBS += -L$$PWD/./ -lHCNetSDK

INCLUDEPATH += $$PWD/.
DEPENDPATH += $$PWD/.

HEADERS += 
    HCNetSDK.h   

win32: LIBS += -L$$PWD/./ -lHCCore

INCLUDEPATH += $$PWD/.
DEPENDPATH += $$PWD/.
main.CPP

//注意在GetModuleHandle(L"kernel32");kernel32windows 10前加上L

#include 
#include "Windows.h"
#include "HCNetSDK.h"
#include
#include 
#include 
#include

typedef HWND(WINAPI* PROCGETCONSOLEWINDOW)();//声明HWND
PROCGETCONSOLEWINDOW GetConsoleWindowAPI;

using namespace std;

void CALLBACK g_ExceptionCallBack(DWORD dwType, LONG lUserID, LONG lHandle, void *pUser)
{
    char tempbuf[256] = {0};
    switch(dwType)
    {
    case EXCEPTION_RECONNECT:    //预览时重连
        printf("----------reconnect--------%dn", time(NULL));
    break;
    default:
    break;
    }
}


int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    NET_DVR_Init();//sdk 初始化


    
    NET_DVR_SetConnectTime(2000, 1);
      NET_DVR_SetReconnect(10000, true);

      //---------------------------------------
      //设置异常消息回调函数
      NET_DVR_SetExceptionCallBack_V30(0, NULL,g_ExceptionCallBack, NULL);

      //---------------------------------------
      // 获取控制台窗口句柄
     
      HMODULE hKernel32 = GetModuleHandle(L"kernel32");
      GetConsoleWindowAPI = (PROCGETCONSOLEWINDOW)GetProcAddress(hKernel32,"GetConsoleWindow");


      //---------------------------------------
      // 注册设备
      LONG lUserID;

      //登录参数,包括设备地址、登录用户、密码等
      NET_DVR_USER_LOGIN_INFO struLoginInfo = {0};
      struLoginInfo.bUseAsynLogin = 0; //同步登录方式
      strcpy(struLoginInfo.sDeviceAddress, "10.13.35.229"); //设备IP地址
      struLoginInfo.wPort = 8000; //设备服务端口
      strcpy(struLoginInfo.sUserName, "admin"); //设备登录用户名
      strcpy(struLoginInfo.sPassword, "admin1234"); //设备登录密码

      //设备信息, 输出参数
      NET_DVR_DEVICEINFO_V40 struDeviceInfoV40 = {0};

      lUserID = NET_DVR_Login_V40(&struLoginInfo, &struDeviceInfoV40);
      if (lUserID < 0)
      {
          printf("Login failed, error code: %dn", NET_DVR_GetLastError());
          NET_DVR_Cleanup();
          return 0;
      }

      //---------------------------------------
      //启动预览并设置回调数据流
      LONG lRealPlayHandle;
      HWND hWnd = GetConsoleWindowAPI();     //获取窗口句柄
      NET_DVR_PREVIEWINFO struPlayInfo = {0};
      struPlayInfo.hPlayWnd = hWnd;         //需要SDK解码时句柄设为有效值,仅取流不解码时可设为空
      struPlayInfo.lChannel     = 1;       //预览通道号
      struPlayInfo.dwStreamType = 0;       //0-主码流,1-子码流,2-码流3,3-码流4,以此类推
      struPlayInfo.dwLinkMode   = 0;       //0- TCP方式,1- UDP方式,2- 多播方式,3- RTP方式,4-RTP/RTSP,5-RSTP/HTTP
      struPlayInfo.bBlocked     = 1;       //0- 非阻塞取流,1- 阻塞取流

      lRealPlayHandle = NET_DVR_RealPlay_V40(lUserID, &struPlayInfo, NULL, NULL);
      if (lRealPlayHandle < 0)
      {
          printf("NET_DVR_RealPlay_V40 errorn");
          NET_DVR_Logout(lUserID);
          NET_DVR_Cleanup();
          return 0;
      }

      Sleep(10000);
      //---------------------------------------
      //关闭预览
      NET_DVR_StopRealPlay(lRealPlayHandle);
      //注销用户
      NET_DVR_Logout(lUserID);
      //释放SDK资源
      NET_DVR_Cleanup();

      return a.exec();

    }


海康6.12022.4.12SDK示例及win10SDK官方说明文档-C++文档类资源-CSDN下载

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/934191.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号