【Qt】Qt6调用Visual Studio2019生成的动态库详解
发布日期:2021-06-29 20:52:09
浏览次数:3
分类:技术文章
本文共 3418 字,大约阅读时间需要 11 分钟。
00. 目录
文章目录
01. 开发环境
Qt环境:Qt5.15 或者Qt6
VS环境:Visual Studio 2019
02. Visual Studio 2019生成动态库
03. 新建Qt项目
3.1 创建Qt纯C项目
3.2 将Visual Studio 2019生成的动态库相关文件和头文件拷贝到当前Qt项目所在的目录中。
3.3 右击Qt项目,选择添加库
3.4 选择外部库
3.5 设置外部库
3.6 添加头文件,选择对应的.h文件即可
04. 编写测试程序
程序示例
#include#ifndef _MSC_VER#include #endif#include #include #include //包含Modbus相关头文件#include "modbus.h"//相关参数设置#define LOOP 1 //循环次数#define ADDRESS_START 0 //测试寄存器起始地址#define ADDRESS_END 99 //测试寄存器结束地址int main(void){ modbus_t* ctx = NULL; int ret = -1; int nums = 0; int addr = 0; int i = 0; int tmp = 0; uint16_t* tab_rq_registers = NULL; uint16_t* tab_rp_registers = NULL; //设置随机种子 srand((int)time(0)); //1. 创建一个TCP类型的变量 ctx = modbus_new_tcp("192.168.1.90", 10086); if (NULL == ctx) { fprintf(stderr, "Error: %s\n", modbus_strerror(errno)); return 1; } else { printf("设置TCP成功\n"); } //2. 设置Debug模式 ret = modbus_set_debug(ctx, TRUE); if (-1 == ret) { fprintf(stderr, "Error: 设置Debug模式失败"); modbus_free(ctx); return 1; } //3. 连接Server ret = modbus_connect(ctx); if (-1 == ret) { fprintf(stderr, "Connection failed: %s\n", modbus_strerror(errno)); modbus_free(ctx); return 1; } //4. 计算需测试的寄存器个数 nums = ADDRESS_END - ADDRESS_START; //5. 申请内存 保存发送和接收的数据 tab_rq_registers = (uint16_t*)malloc((nums + 1) * sizeof(uint16_t)); if (NULL == tab_rq_registers) { fprintf(stderr, "malloc failed\n"); modbus_free(ctx); return 1; } else { memset(tab_rq_registers, 0, (nums + 1) * sizeof(uint16_t)); } tab_rp_registers = (uint16_t*)malloc((nums + 1) * sizeof(uint16_t)); if (NULL == tab_rp_registers) { fprintf(stderr, "malloc failed\n"); modbus_free(ctx); return 1; } else { memset(tab_rp_registers, 0, (nums + 1) * sizeof(uint16_t)); } //7. 测试保持寄存器的单个读写 //随机数字 for (i = 0; i < nums; i++) { tmp = rand() % 100; tab_rq_registers[i] = tmp; if (0 == i) { printf("写入的值: "); } printf("%hd ", tab_rq_registers[i]); } //换行 printf("\n"); addr = ADDRESS_START; //先写入,后读取该数据到指定的内存中 ret = modbus_write_and_read_registers(ctx, addr, nums + 1, tab_rq_registers, addr, nums + 1, tab_rp_registers); if (nums + 1 != ret) { printf("Error modbus_write_and_read_registers: %d\n", ret); printf("Address: %d nums: %d\n", addr, nums + 1); } else { //输出 for (i = 0; i < nums; i++) { if (0 == i) { printf("读取到的值: "); } printf("%hd ", tab_rp_registers[i]); } //换行 printf("\n"); } //再次读取数据 memset(tab_rp_registers, 0, (nums + 1) * sizeof(uint16_t)); ret = modbus_read_registers(ctx, addr, nums + 1, tab_rp_registers); if (nums + 1 != ret) { printf("Error modbus_read_registers: %d\n", ret); } else { //输出 for (i = 0; i < nums; i++) { if (0 == i) { printf("读取到的值: "); } printf("%hd ", tab_rp_registers[i]); } //换行 printf("\n"); } //8. 释放内存 free(tab_rp_registers); free(tab_rq_registers); //9. 断开连接 modbus_close(ctx); modbus_free(ctx); return 0;}
执行结果
05. 其它参考
加载示例
# 请配置 Mysql 的包含库路径win32:INCLUDEPATH += "D:/Mysql/mysql-5.7.15-win32/include"# 请配置 Mysql 的静态库路径win32:LIBS += "-LD:/Mysql/mysql-5.7.15-win32/lib" -llibmysql
静态库标示符注意事项
-L :后面要跟的是lib文件的路径名,不可以有空格。
-l :后面跟的是要加载的静态库lib文件名,是文件名,不要加后缀名,要链接着写,别加空格。
Qt帮助文档
双击选中关键字 “LIBS” || “INCLUDEPATH” 按下键盘的F1键 调用 Qt自带的帮助文档。加载不到静态库情形
空格路径
LIBS += “-LE:\Work For CEAC\joy_20161213\Code\External\bin” -lSystemModule_znjd
路径中存在空格时,务必用双引号引起来。
06. 附录
参考:
转载地址:https://dengjin.blog.csdn.net/article/details/116849902 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
路过按个爪印,很不错,赞一个!
[***.219.124.196]2024年04月09日 04时31分33秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
干货!如何快速拥有自己的商城APP
2019-04-30
就现在而言,微信小程序还有市场吗?
2019-04-30
超级好用的智能网站小功能
2019-04-30
快来学学爱用建站新功能【Light Press】微单页,超级实用
2019-04-30
用最低的成本做到自己想要的小程序商城效果
2019-04-30
不安全!!!都2020年了,你的网站还没上HTPPS说得过去吗?
2019-04-30
没有网店经验的小商家在轻栈也可以将小程序商城搞得风生水起
2019-04-30
干货!利用微信生态推广小程序商城
2019-04-30
爱用建站智能推送一键完成全网分发,你也可以篇篇10w+
2019-04-30
微信小程序免费申请攻略
2019-04-30
内容创作新款工具“爱用博客系统”来啦
2019-04-30
免费网站制作攻略
2019-04-30
如何利用线下门店绿色通道快捷注册小程序
2019-04-30
微信小程序构建新经济圈
2019-04-30
爱用建站快速注册支付宝小程序流程
2019-04-30
爱用建站微信小程序快速上线攻略
2019-04-30
智能表单一键分发,快速收集信息
2019-04-30
爱用建站电商系统助力企业线上营销
2019-04-30
做完微信小程序的小白,现在开始赚钱了
2019-04-30
小程序掘金时代
2019-04-30