labview调用动态链接库问题

2019-07-17 09:17发布

本帖最后由 ZHZJK 于 2014-7-15 11:07 编辑

本人使用动态链接库一直没成功过,这次准备调用读卡器的dll来读卡
用了其中 打开串口 和读取卡号 两函数总是有错
希望大家帮忙看看
下面是一些基本的图片。


newscreen9670377.jpg


newscreen9888840.jpg
newscreen9867702.jpg


newscreen9858358.jpg



下面为链接库的一些内容
设备号一般为0
newscreen10458353.jpg

这边波特率一般为9600
newscreen10445156.jpg


上传的VI是2012版本的,下面是一些最基本的资料。
VI是2012的,按下按钮打开串口
读卡.vi (12.83 KB, 下载次数: 57)

201Comm.dll (160 KB, 下载次数: 67)

201COMM.pdf (66.23 KB, 下载次数: 73)








newscreen9670377.jpg
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
19条回答
ZHZJK
1楼-- · 2019-07-17 13:03
突然弄好了 ,可以使用了
zhou2sheng
2楼-- · 2019-07-17 13:52
 精彩回答 2  元偷偷看……
ZHZJK
3楼-- · 2019-07-17 19:52
zhou2sheng 发表于 2014-7-23 10:17
楼主能把解决办法分享一下嘛?

其实这对你的帮助可能会小点,不过还是说下吧
其实链接库就是其它语言编写的程序罢了
要使用别人的链接库,一定要符合别人的逻辑
而本链接库其实就是对串口的一些操作罢了,要想使用必须了解串口的规则
当然串口的规则很简单,相信大多数人都是知道的,就是打开串口,读写,关闭串口
所以使用这链接库,必须要先使用打开串口的函数,否则肯定会报错

下图是打开串口的函数
newscreen32231850.jpg
handle表示的是句柄,就是I32, 然后就是端口号,和波特率
有个重点,下面的调用规范要选择   stdcall  不然会报错

newscreen32198341.jpg
先将打开串口发给你,剩下的还要整理一下

ZHZJK
4楼-- · 2019-07-17 20:49
zhou2sheng 发表于 2014-7-23 10:17
楼主能把解决办法分享一下嘛?

下面这地方有一个真正的陷阱
先来看一下读串口函数的函数原型
newscreen2147447.jpg

众所周知,labview里串口所有的函数都是直接用COM口的
串口打开后,直接用COM口读写
再调用C++编写的程序难免会直接用  COM 作为参数来读程序
如果这样做,就会步入一个天然的陷阱中
因为这程序中读取串口是用的句柄,而句柄是整形
当时我就在想,为什么COM口会输入的是整形
现在想想,在windows操作系统中,句柄就是代表的每一个窗体,同样可以用句柄好代表端口号

最后传上程序图片
newscreen2569508.jpg

希望个人的见解能给你与观看这篇帖子的人一些启发(虽然看我帖子的人很少^_^)

CareZhu
5楼-- · 2019-07-17 22:25
谢谢楼主分享经验
vib001
6楼-- · 2019-07-18 03:43
谢谢楼主分享经验

一周热门 更多>