VS2019配合QT5.9开发IRayAT430相机SDK

环境配置

  VS2019 
  QT5.9 
  编译器版本 MSVC2017_64

添加系统环境变量(完毕后重启电脑)
在这里插入图片描述在这里插入图片描述

从VS2019中下载Qt插件
在这里插入图片描述

从VS2019中添加单个编译组件
在这里插入图片描述

上述操作完成后用VS打开工程文件,工程文件地址 :

C:\Users\86173\Desktop\IRCNETSDK_Windows_X86_X64_V1.1.1\IRCNETSDK_win\Demo\C++\src\IRCNetSDKDemo.sln

设置Qt插件版本(否则会报错)
在这里插入图片描述

qmake文件路径:D:\HQvision\Qt\5.9\msvc2017_64\bin

问题描述

E1696 无法打开源文件

在这里插入图片描述

解决方案:配置项目属性

1.重定位VC++的包含目录
在这里插入图片描述
2.重定位VC++的库目录

在这里插入图片描述


E1696 无法打开 源 文件 “IRCNetSDKDef.h”

解决方案:将路径D:\HQvision\Pro\Iray\IRCNETSDK_Windows_X86_X64_V1.1.1\IRCNETSDK_win\SDK\include

IRCNetSDKDef.hIRCNetSDK.h
在这里插入图片描述

放入路径D:\HQvision\Pro\\Iray\IRCNETSDK_Windows_X86_X64_V1.1.1\IRCNETSDK_win\Demo\C++\src

在这里插入图片描述


There‘s no Qtversion assigned to project
原因:相同工程在不同电脑下qt配置不一致导致该项目qt setting设置有误

在这里插入图片描述

解决方案:找到Qt Project Settings->Qt Installation,切换到当前电脑所使用的qt版本即可

在这里插入图片描述


MSB806
原因:附加包含目录中Qt版本不一致

在这里插入图片描述
解决方案:
1.右击项目 - 属性 - C/C++常规-附加包含目录,修改QT的路径为

在这里插入图片描述
2.找到缺失的moc_predefs.h.cbt文件,放入此工程的debug文件夹中
在这里插入图片描述
在这里插入图片描述
具体路径为:

C:\Users\86173\Desktop\IRCNETSDK_Windows_X86_X64_V1.1.1\IRCNETSDK_win\Demo\C++\src\debug

缺少未引用的头文件PTZPage.h

在这里插入图片描述
解决方案:定位问题所在文件,添加头文件#include "PTZPage.h"

在这里插入图片描述


LINK1104链接库出错

在这里插入图片描述
解决方案:
修改链接器-常规-附加库目录为D:\HQvision\Pro\Iray\IRCNETSDK_Windows_X86_X64_V1.1.1\IRCNETSDK_win\SDK\x64
在这里插入图片描述
修改链接器-常规-附加依赖项为

在这里插入图片描述


DLL文件缺失

在这里插入图片描述
解决方案:将C:\Users\86173\Desktop\IRCNETSDK_Windows_X86_X64_V1.1.1\IRCNETSDK_win\SDK\x64 路径下的DLL文件
在这里插入图片描述

复制到路径C:\Users\86173\Desktop\IRCNETSDK_Windows_X86_X64_V1.1.1\IRCNETSDK_win\Demo\C++\bin\x64

在这里插入图片描述
PS:添加DLL后运行VS若有 0x7b 错误码,需要重启VS才能生效


所有参数项目配置完成,程序成功执行,输出GUI界面如下
在这里插入图片描述

  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的示例代码,演示了如何使用大华相机SDKVS2019和QT中进行开发: ```cpp #include "stdafx.h" #include "mainwindow.h" #include "ui_mainwindow.h" #include <iostream> #include "dhnetsdk.h" #include "dhconfigsdk.h" #include "dhplay.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow) { ui->setupUi(this); // 初始化SDK NETSDK_Init(); // 登录设备 NET_DEVICEINFO_Ex stDevInfo = { 0 }; int nLoginID = NET_DVR_Login_V40("192.168.1.100", 8000, "admin", "password", &stDevInfo); if (nLoginID < 0) { std::cout << "登录设备失败!" << std::endl; return; } // 获取视频通道号 int nChannel = 0; NET_DVR_DEVICEINFO_V30 stDeviceInfo = { 0 }; if (!NET_DVR_GetDVRConfig(nLoginID, NET_DVR_GET_DEVICECFG_V30, 0, &stDeviceInfo, sizeof(stDeviceInfo), NULL)) { std::cout << "获取设备信息失败!" << std::endl; return; } nChannel = stDeviceInfo.byChanNum; // 开始预览 NET_DVR_PREVIEWINFO struPlayInfo = { 0 }; struPlayInfo.hPlayWnd = (HWND)ui->label->winId(); struPlayInfo.lChannel = nChannel; struPlayInfo.dwStreamType = 0; struPlayInfo.dwLinkMode = 0; if (!NET_DVR_RealPlay_V40(nLoginID, &struPlayInfo, NULL, NULL)) { std::cout << "预览失败!" << std::endl; return; } } MainWindow::~MainWindow() { // 停止预览 NET_DVR_StopRealPlay(nLoginID); // 注销登录 NET_DVR_Logout(nLoginID); // 释放SDK资源 NETSDK_Cleanup(); delete ui; } ``` 首先,在QT项目中添加头文件和库文件,然后在MainWindow类的构造函数中进行SDK的初始化、设备登录、获取视频通道号和开始预览等操作。在开始预览时,需要将预览窗口的句柄传递给NET_DVR_PREVIEWINFO结构体中的hPlayWnd字段,这里使用了QT的QLabel作为预览窗口。在MainWindow类的析构函数中,停止预览、注销登录和释放SDK资源。 当然,这只是一个简单的示例代码,实际开发中需要根据具体需求进行修改和完善。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值