C++不归路之Visual Studio加载zlg/创芯CAN DLL


前言

最近和QT打交道比较多,所以又掏出C++,市面上CAN设备有很多,既然sizhu对实惠的产品情有独钟,当然得给™安排好。(咱就一食草的,该干就算眼睛流口水也得想办法,好歹有得吃/(ㄒoㄒ)/~~)。

为了不重复写驱动程序(偷懒{{{(>_<)}}}),博主自个在逐步整合ZLG,kvaser等国内外CAN总线驱动(DLL),类似python-can的做法。

本篇仅分享怎么如何在Visual Studio中导入zlg,创芯两款驱动,以及一些需要注意的问题。

该话题的后续内容看“需求”。(●’◡’●)

在这里插入图片描述


开发环境

简单提一下,确实是QT有点坑,还是得说下(主要是为了水字数大业),在VS里自己玩自己那没事,但是要和QT“联动”就得相互兼容。
软件:Visual Studio 2022 Community(免费)
Windows 10 SDK:10.0.20348.0 (操作系统为Windows 10)
MSVC v141:VS 2017 C++ x64/x86生成工具(QT5.12支持2015和2017,版本需对应)

其他挺基本的就不列举了…

大佬与QT十几年的“爱恨情仇” !?瞻仰!!!

Ps:特别提醒下,QT默认安装是mingw编译器,MSVC需要勾选,同时安装两款软件,也许QT会自动去识别VS的MSVC,但也可能需要自己配…咳咳,偏题了,解决方法暂且存着,总之QT坑不少,还不好找,嘿嘿(⁎⁍̴̛ᴗ⁍̴̛⁎)

在这里插入图片描述

项目配置

Step0:没啥好说的,创个HelloWorld,空项目也一样。
在这里插入图片描述
Step1:解决方案资源管理器中找到对应项目(区分项目和解决方案),右键>>属性>>常规,修改平台工具集为 v141 ;修改WindowsSDK版本为10.0.20348.0。
在这里插入图片描述
接着选择VC++目录,这里修改了包含目录(头文件位置)和库目录(lib文件位置),到这里配置完成…但是还得水点。

可执行文件目录(exe文件位置)
引用目录(#using引用程序的文件位置)
Windows运行库目录(emem,好像是windows安装目录,一般用不到,默认即可)
源目录(cpp文件位置)
排除目录(顾名思义就是编译时不会被搜索的目录)
在这里插入图片描述

驱动导入

首先将对应版本的相关文件放到指定目录。

include目录:ControlCAN.h(创芯)和zlgcan.h(ZLG),以及相关头文件

lib目录:ControlCAN.lib和zlgcan.lib

运行目录(没打包前与包含main函数的源文件放一起,设置可执行文件目录后放里面应该也可以,打包后就和exe文件放一起):ControlCAN.dll和zlgcan.dll
在这里插入图片描述
再回到程序里,通过 #include 命令导入头文件

#include "ControlCAN.h"
#include "zlgcan.h"

#pragma comment(lib,"ControlCAN.lib")	\\ 类似于附加依赖项
#pragma comment(lib,"zlgcan.lib")		\\ 这个指令是MSVC的,QT的MinGW无效

#pragma comment(lib,“ControlCAN.lib”) 在VS中也可以通过在附加依赖项中添加ControlCAN.lib替代,但是QT没有,因此还是建议前者。在这里插入图片描述

调用DLL中的程序

#include <iostream>
#include "ControlCAN.h"
#include "zlgcan.h"

#pragma comment(lib,"ControlCAN.lib")
#pragma comment(lib,"zlgcan.lib")
int main()
{
    VCI_BOARD_INFO CXInfo[50];
    int num = VCI_FindUsbDevice2(CXInfo);
    std::cout << "cx设备的数量为:" << num << std::endl;
}

在这里插入图片描述
调用成功!!! 手头没有ZLG的CAN设备就不做演示,反正金主说加了整合的dll两款CAN都可以使用,嘿嘿U•ェ•*U

嘿嘿–资源

国产CANdll
ZLG和创芯的DLL驱动放资源里,自取…喜欢就点个赞╰(✿´⌣`✿)╯♡

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值