当前位置: 首页 > news >正文

VS2022+QT5.15.2进行CAN通讯的上位机开发(3)

现有上位机开发基本都是二次开发,很少是原生开发,因此一般都需要将供应商提供的开发包进行调用,在开发包基础上进行二次开发,开发包中文件类型有很多,我主要是基于Windows系统的开发包二次开发,主要文件类型为.h、.lib、.dll。

在之前的博客中我们能够在VS2022上运行成功并弹出UI界面,但在根据进行实际编程前,需要将开发包中的文件加载或者能让VS2022软件识别到需要调用的文件路径在哪里、调用的文件名称是什么。

我这边参照的博客是来自稀土掘金的鲁班代师,链接如下:

https://juejin.cn/post/7200297595474624573

文章讲解很详细,我就不进行重复说明,讲我遇到的问题,在VS2022链接器->输入->附加依赖项中只需要添加好需要调用的.lib文件名称就行了,不要添加.dll文件名称。

一开始我按照博客在附加依赖项中添加了.lib和.dll文件名称,并将供应商提供的.dll文件全部复制在生成的exe文件下,进行编译的过程中发现报错:

1>LINK : fatal error LNK1104: 无法打开文件“***.dll”

然后我到输出文件路径下去查看是否有.exe文件生成,输出文件路径可以右键点击VS2022中创建的项目名称,选择属性,在弹出的窗口界面配置属性->常规->输出目录进行查看,就可以知道本项目生成的exe文件地址了,一般在创建的项目文件夹下,我的输出文件路径D:\UICPP\QtWidgetsApplication1\x64\Debug,在改文件路径下有.log文件,点击进去就可以看到具体的报错信息了。

在输出文件下没有找到生成的exe文件,我首先将报错复制在网上查找解决办法,但是解决方法只是提供了思路,对于小白而言,按照解决思路去解决问题反而一头雾水无从下手。

在查找一番博客后,我还是没有解决,但我确定一点:在没有进行开发包文件加载前,程序本身可以正常运行,在按步骤添加之后反而报错那就说明在添加过程中存在问题。

1.可以排除的是添加文件的文件夹路径,一般不会出现问题,但要是添加错了文件夹就当我没说;

2.可以确定在添加附加依赖项或将.dll文件复制在exe文件下一个或者两者都存在问题。

3.将需要加载的dll文件全部删除,重新运行,发现还是报相同的错误,可以暂时排除掉dll文件的事情;

4.在删除dll文件的基础上,将附加依赖项的文件名称也全部删除,重新运行,运行成功,OK可以确定问题出在这里。

附加依赖项中只能添加.lib文件,如果加入.dll文件就会报上面的错误。

但我们的目的是什么,是用VS2022调用开发包文件。

在将附加依赖项的文件名称删除之后,尝试在main.cpp文件调用开发包中的结构体、头文件,这些都是没有问题的,但这并不意味着我们将开发包中的文件全部加载成功,我们进行二次开发是需要调用现有的函数的,供应商提供的.lib、.dll文件就是函数调用的输出文件,因此我在.cpp文件尝试调用开发包中的函数,在编写过程中没有报错,但是运行过程中出现报错,报错内容依旧是:系统找不到.dll文件,此时只需要将开发包中的.dll文件放到exe文件下就行,运行无报错,成功出现窗口弹窗。

http://www.jsqmd.com/news/1328568/

相关文章:

  • ElasticSearch倒排索引
  • 辽宁铸铝门用三年了,真的不锈吗?
  • C语言准大一开始之旅!!!
  • 3步掌握SRWE:突破Windows窗口限制的实时编辑神器
  • Qt5Compat.GraphicalEffects模块详解与UI特效实战
  • 传统收银机 vs 智能收银终端:系统流畅度与升级成本对比
  • Python字典核心用法与高级应用全解析
  • 生成式设计新范式:基于扩散模型的渐变纹理参数化控制(支持Blender 4.2实时预览,含17个可微分控制节点)
  • 从自指宇宙方程U=ℱ(U)推导标准模型规范群SU(3)×SU(2)×U(1)的唯一性深入研究
  • Java设计模式之单例模式
  • 【2024内容生产力革命】:用AI 7分钟生成高转化排行榜文章,实测CTR提升3.8倍!
  • 【图像识别】基于模板匹配算法实现卡牌识别matlab代码
  • ncmdumpGUI:免费解锁网易云音乐NCM格式的终极桌面工具
  • 用现有的技术打造一套防失踪和意外伤害的取证系统
  • 转写速度最快最慢差6倍2026实测8款会议记录自动生成软件 哪款更适合职场办公
  • 01 web API JavaScript 入门到精通全套教程 77-90
  • 微服务架构下的智能音乐推荐系统设计与实现
  • 如何用pyDOE实现高效的Python实验设计?3种方法让你的实验更科学
  • NI HIL自动化测试19-Matlab-Simulink自动化建模
  • 51单片机电子琴音乐播放器:从原理到实现的完整开发指南
  • Speechless:3分钟掌握微博内容永久保存的免费方案
  • Linux 内核参数:vmstat
  • AssetStudio实战指南:从Unity资源包提取音频并转换为MP3/WAV
  • 豆包智能体落地全链路拆解(企业级私有化部署实录)
  • Elden Ring FPS Unlock And More:内存补丁技术深度解析与高级配置指南
  • SpringBoot+Vue兼职平台全栈开发实践
  • Java IO与NIO核心技术解析与性能优化实践
  • 苏州地址挂靠到期迁移,工商税务变更先后顺序?
  • 视频下载助手终极指南:免费开源工具助你轻松保存网页视频资源
  • 权限系统笔记(一)、用户中心等