Qt学习:Qt5.9.2+vs2017移植usb第三方库

2023-05-16

第三方库Hidapi用于实现usb通信,将它移植成功以用来实现qt做一个usb通信的上位机。
首先是下载hidapi-0.7.0源码:http://www.signal11.us/oss/hidapi/
源码文件夹截图如下:
在这里插入图片描述
打开window下文件夹。
这里由于源码所带的vs工程是基于32系统的,所以我们不能直接编译该工程 ,而且会报错。
此时,通过vs2017新建一个空项目,仿照源码中的工程 ,在其中加入hid.c源文件和hidapi.h头文件。
hidapi.h位于上面截图中hidapi下。
注意要把hidapi.h拷贝到工程目录下。
建好的vs工程截图如下:
在这里插入图片描述
此时要注意在工程属性中进行设置,否则会报错:
在这里插入图片描述
常规->配置类型中选择:动态库.dll
在这里插入图片描述
链接器->输入->附加依赖项加入setupapi.lib

接下来用
Debug x64模式编译文件,会生成所需要的动态库。
我们需要三个文件:hidapi.h hidapi.dll hidapi.lib
hidapi.dll 和 hidapi.lib 在所建工程的一级目录下 x64 ->debug下
在这里插入图片描述

接下来新建一个测试工程 :hidtest
将头文件hidapi.h拷贝到工程目录下,
新建hidtest.cpp,加入如下代码进行简单测试:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include “hidapi.h”
int main(int argc, char* argv[])
{
int res;
unsigned char buf[256];
#define MAX_STR 255
wchar_t wstr[MAX_STR];
hid_device *handle;
int i;

#ifdef WIN32
UNREFERENCED_PARAMETER(argc);
UNREFERENCED_PARAMETER(argv);
#endif

struct hid_device_info *devs, *cur_dev;

devs = hid_enumerate(0x0, 0x0);
cur_dev = devs;
while (cur_dev) {
	printf("Device Found\n  type: %04hx %04hx\n  path: %s\n  serial_number: %ls", cur_dev->vendor_id, cur_dev->product_id, cur_dev->path, cur_dev->serial_number);
	printf("\n");
	printf("  Manufacturer: %ls\n", cur_dev->manufacturer_string);
	printf("  Product:      %ls\n", cur_dev->product_string);
	printf("  Release:      %hx\n", cur_dev->release_number);
	printf("  Interface:    %d\n", cur_dev->interface_number);
	printf("\n");
	cur_dev = cur_dev->next;
}
hid_free_enumeration(devs);

// Open the device using the VID, PID,
// and optionally the Serial number.
handle = hid_open(0x4d8, 0x3f, L"12345");
handle = hid_open(0x17ef, 0x6018, NULL);
if (!handle) {
	printf("unable to open device\n");
	return 1;   //可以通过返回值确认程序出错位置
}
system("pause");
return 0;

}
进行工程属性设置:
在这里插入图片描述
在附加库目录中加入hidapi.lib所在文件夹目录
在这里插入图片描述
在附加依赖项中加入hidapi.lib

如果编译通过,返回值为0,说明该库正确,可以正确打开hidusb设备。

注意代码:handle = hid_open(0x17ef, 0x6018, NULL);
此处vid和hid值需要通过前面枚举出的设备值修改以对应自己电脑上的设备,否则无法正确打开。
调试里可以先把打开设备那几行代码注释掉,单独查看枚举出的hidusb设备信息。否则会因为if语句中的return 1; 导致程序一闪而过,无法观察。

调试好这个,接下来可以在qt工程中正常使用代码。 注意配置好工程,拷贝好相应文件。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Qt学习:Qt5.9.2+vs2017移植usb第三方库 的相关文章

  • 【chatgpt代码系列】roslaunch的python接口实现ros节点生命周期管理

    Q1 xff1a 请帮我写一段python管理程序 xff0c 使用了roslaunch的api接口 xff0c 用于管理ros各个节点的生命周期 好的 xff0c 以下是一份简单的Python代码示例 xff0c 可以使用roslaunc
  • 零基础树莓派无键盘鼠标显示器的初始配置方法

    Author Gary Li Date 2019 11 19 Ref https blog csdn net m0 37340681 article details 84262359 https www jianshu com p 3f4f
  • zufeoj_八皇后

    题目链接 xff1a http acm ocrosoft com problem php cid 61 1172 amp pid 61 41 题目描述 会下国际象棋的人都很清楚 xff1a 皇后可以在横 竖 斜线上不限步数地吃掉其他棋子 如
  • PADS VX系列 软件

    PADS VX1 2 软件在实际开发中的应用 预告 xff0c 后续更新 文章目录 PADS VX1 2 软件在实际开发中的应用 预告 xff0c 后续更新 64 TOC 文章目录 前言一 PADS VX系列 及相关软件 下载二 PADS
  • Qt Opencv TCP 传输图像(视频)序列

    目录 1 传输流程 2 服务器端实现代码 3 客户端代码 xff1a 4 界面 1 传输流程 客户端像服务端发起连接请求 xff1b 待连接建立后 xff0c 客户端像服务器端发送对图像序列 xff08 视频 xff09 的请求信号服务端端
  • 在vscode中使用Git的教程

    vscode简介 VSCode是微软推出的一款轻量编辑器 xff0c 采取了和VS相同的UI界面 xff0c 搭配合适的插件可以优化前端开发的体验 布局 xff1a 左侧是用于展示所要编辑的所有文件和文件夹的文件管理器 xff0c 依次是资
  • c/c++:内存操作函数 malloc/free/memcpy/memmove/memset

    1 malloc free amp new delete malloc使用示例 xff1a int p 61 int malloc sizeof int 它有两个要点 xff1a 1 要强制类型转换为相应指针 2 要指明大小 malloc申
  • 嵌入式操作系统浅谈

    写本文主要是记录一下最近几年自己在工作项目实践中的一些实际经验 xff0c 并没有任何吹嘘或者参假 xff0c 主要是目的是记录 xff0c 如果有可能对一些读者带来一些帮助或启示 xff0c 那就是我最大的欣慰 1 工作中大家是怎么看待嵌
  • 一.信息系统建设

    64 项目经理考试学习笔记 一 信息系统建设 1 信息化系统开发的方法 1 1 结构化方法 结构化方法的几个特点 1 用户至上 2 严格的分区工作 xff0c 每隔阶段都有任务和成果 3 强调系统开发过程中的整体性和全局性 4 系统开发过程
  • 七.项目管理基础知识

    64 项目经理考试学习笔记 七 项目管理基础知识 考2到3分 xff0c 了解基本概念 1 项目与项目管理基本概念和特点 1 1 项目 特点 xff1a 临时性 xff0c 独特性 xff0c 渐进明细性 1 2 项目的目标 2 项目管理的
  • 八. 项目的立项管理

    64 项目经理考试学习笔记 八 项目的立项管理 1 项目的立项过程 2 可行性研究 2 1 内容和步骤 2 2 初步可研 2 3 项目建议书 xff08 立项申请 xff09 2 4 详细可研 2 4 1 依据和原则 2 4 2 内容 2
  • 九. 项目的整合(整体)管理

    64 项目经理考试学习笔记 九 项目的整合 xff08 整体 xff09 管理 把项目管理的其他九大知识域比作珠子 xff0c 整合管理就是把珠子串起来的线 xff0c 任何一个珠子出现了问题 xff0c 都需要改变整条线来处理 1 整合管
  • 课程七 神经网络(三)

    64 斯坦福李飞飞深度学习上课笔记 课程七 神经网络 xff08 三 xff09 内容列表 xff1a 1 梯度检查 2 合理性 xff08 Sanity xff09 检查 3 检查学习过程 3 3 损失函数 3 4 训练集与验证集准确率
  • 课程八 卷积神经网络

    64 斯坦福李飞飞深度学习上课笔记 课程八 卷积神经网络 内容列表 1 结构概述 2 用来构建卷积神经网络的各种层 2 1 卷积层 2 2 汇聚层 2 3 归一化层 2 4 全连接层 2 5将全连接层转化成卷积层 3 卷积神经网络的结构 3
  • 野火多功能调试助手】 -野火PID调试助手通讯协议

    野火多功能调试助手 复制链接 野火PID调试助手通讯协议 LONG R3acc 电梯直达 1 发表于 2020 6 30 21 14 32 只看该作者 本帖最后由 LONG R3acc 于 2020 6 30 21 16 编辑 i md 野
  • 基于ADRC的电机控制-一些说明

    基于ADRC的电机控制 https zhuanlan zhihu com p 102467043 https zhuanlan zhihu com p 115283894 1 xff0c TD部分我就不讲了 xff0c 就是把指令信号处理一
  • 20210824-ADRC数学和解释

    ADRC个人感觉就是 xff0c 对目标信号进行最速跟踪 43 不确定量观测补偿 43 低通滤波信号微分 43 pid 举例说明 xff1a 输入 xff1a Sr 目标电机速度 xff0c 输出 xff1a u 电机pwm 被控量 xff
  • Linux: grep命令及用法说明

    一 几种grep指令的区别 1 grep Global Regular Expressions Print 全局正则表达式打印 标准grep命令如下所示 xff1a grep span class token operator lt spa
  • 靠谱测试人员需要具备BUG洞察能力

    测试人员发现BUG 在整个测试工作过程中间占的比重非常高 xff0c 测试用例设计的目的也是为了发现系统中间的BUG 所以 xff0c BUG洞察能力是测试人员必不可少的能力 1 一般缺陷的发现能力 至少你要满足一般缺陷的发现能力 xff0
  • [Git]删除远程分支和本地分支

    删除远程分支 1 切换到你git项目所在的目录后 xff0c 使用 git branch a命令来查看所有的分支 2 我们需要先把分支切换到master xff0c 3 接着就是删除远程分支的命令了 xff0c git push origi

随机推荐

  • 【转】如何防止softmax函数上溢出(overflow)和下溢出(underflow)

    转载出处 xff1a https www codelast com Deep Learning xff08 Ian Goodfellow amp Yoshua Bengio amp Aaron Courville xff09 第四章 数值计
  • C++工程,CMakelist.txt,CMake添加所有头文件,CMake递归添加头文件,CMake查找所有源文件

    CMakelist txt cmake minimum required span class token punctuation span VERSION 3 5 span class token punctuation span pro
  • git 本地回退到某个版本

    master xff1a Git 的默认分支 xff0c init 命令默认创建 origin xff1a Git 克隆的仓库服务器的默认名字 github将master改名main主要是因为master and slave术语不够政治正确
  • IIC通信协议总结(详细说明完整过程)

    IIC协议简介 IIC xff08 inter integrated Circuit集成电路总线 总线支持设备之间的短距离通信 xff0c 用于处理器和一些外围设备之间的接口 xff0c 它需要两根信号线来完成信息交换 IIC的一个特殊工艺
  • cmake添加资源文件

    一 cmake添加资源文件 1 在最外层cmakelist中添加资源文件目录 images ADD SUBDIRECTORY images 2 在资源文件cmakelist中添加images qrc编译方式 Files SET IMAGE
  • ROS串口数据读取发送

    记录一下 包含串口数据HEX形式的读取 xff0c 发送 xff1b 读取后通过节点发送消息 myserialnode cpp include 34 ros ros h 34 include lt serial serial h gt in
  • S-MSCKF代码阅读

    阅读学习代码 文章目录 第一部分 xff1a 相关库函数介绍1 pluginlib理解与示例2 nodelet3 launch文件4 Eigen内存分配器5 std map的第三个参数6 image transport7 message f
  • Windows+COLMAP三维重建教程【exe安装】

    一 步骤 1 下载COLMAP COLMAP COLMAP 2 解压并运行COLMAP 3 稀疏三维重建 xff0c 生成稀疏图 4 稠密图三维重建 xff0c 生成稠密图 二 可能出现的问题 1 Dense stereo reconstr
  • 程序基础:正则表达式

    一 正则表达式元字符 1 匹配字符 xff1a xff1a 任意一个字符 abc xff1a 表示匹配一个字符 xff0c 这个字符必须是abc中的一个 a zA Z xff1a 表示匹配一个字符 xff0c 这个字符必须是a z或A Z这
  • 【Ubuntu版】CMake安装教程

    一 参考资料 Windows版 CMake安装教程 二 具体步骤 1 离线安装 1 1 Ubuntu系统 官网下载CMake软件包 CMake官网 解压软件包 cmake可执行性文件 home yoyo 360Downloads cmake
  • Jetson TX2刷机教程

    一 参考资料 Jetson TX2官方文档 Jetpack开发者文档 Jetson官方安装教程 jetson tx2刷机 TX2 NVIDIA Jetson Tx2刷机指南 xff08 JetPack 4 4 SDK manager 1 4
  • FFmpeg教程(超级详细版)

    一 参考资料 通过ffmpeg把图片转换成视频 FFmpeg命令 一 使用filter complex命令拼接视频 FFmpeg 视频处理入门教程给新手的 20 多个 FFmpeg 命令示例 FFmpeg命令行转码 ffmpeg 翻译文档
  • yolov5+Deepsort实现目标跟踪

    一 参考资料 项目源码 pytorch yolo5 43 Deepsort实现目标检测和跟踪 工程落地 YoloV5 43 deepsort 43 Fast ReID 完整行人重识别系统 xff08 三 xff09 yolov5 deeps
  • Jetson Xaiver NX相关教程(详细版)

    一 参考资料 Jetson nano NX 部署Yolo v5过程记录 二 相关介绍 三 软件安装 2 1 jetson stats 2 1 1 相关介绍 jetson stats是一个开源软件包 xff0c 用于监测和控制Nvidia J
  • 编译C++程序(经验版)

    一 g 43 43 编译 span class token comment 编译 span g 43 43 文件名 g 43 43 helloWorld cpp g 43 43 文件名 o 输出文件名 g 43 43 open video
  • 【WSL2教程】WSL迁移到非系统盘

    一 问题引入 默认情况下 xff0c WSL会安装在C盘 xff08 系统盘 xff09 xff0c 而C盘空间有限 xff0c 随着WSL子系统的使用 xff0c C盘空间越来越少 xff0c 最后有可能出现C盘不足导致WSL系统崩溃 有
  • 华为Ascend昇腾适配PyTorch框架

    一 参考资料 PyTorch用户文档 PyTorch网络模型移植 amp 训练指南 AscendPyTorch 第三方框架适配 二 重要说明 CPU架构为ARM架构时 xff0c 由于社区未提供ARM架构CPU版本的torch包 xff0c
  • 提高工作效率的宝藏网站和宝藏工具

    一 好用的网站 面包多 面包多 创作者在面包多 xff0c 通过出售课程 xff0c 文章 xff0c 绘画 xff0c 创意作品 xff0c 软件 xff0c 电子书 xff0c 音乐 xff0c 游戏 xff0c 咨询服务 xff0c
  • ubuntu服务器相关教程

    二 常用操作 1 ssh相关 span class token comment 安装ssh服务 span span class token function sudo span span class token function apt g
  • Qt学习:Qt5.9.2+vs2017移植usb第三方库

    第三方库Hidapi用于实现usb通信 xff0c 将它移植成功以用来实现qt做一个usb通信的上位机 首先是下载hidapi 0 7 0源码 xff1a http www signal11 us oss hidapi 源码文件夹截图如下