如何处理C Dll中的字符串数组参数

电子说

1.3w人已加入

描述

LabVIEW:2015

群里小伙伴在项目中用到的一硬件需要调用C/C++编写的Dll,其中一个函数用到了字符串数组参数,他折腾了许久不知道在LabVIEW中调用时如何处理这个类型,如下图所示:

LabVIEW

一顿输出之后问题得到解决。

LabVIEW

有关C/C++中稍微复杂一点与字符串相关的一些类型参数,在LabVIEW处理起来还是有一点小麻烦的,主要是涉及到内存分配,在使用LabVIEW时几乎不用考虑这个问题,但在C语言中可不行,同时LabVIEW中调用的库函数节点支持的参数类型并没有字符串数组,那么如何解决这个问题呢?

如果你很熟悉C语言,那么字符串数组其实就是一个指针数组,指针指向的是一个字符串,说到这里你应该明白了在LabVIEW里面去如何处理它了,可以使用一个数值数组,不过这个数值代表的是内存地址(即指针),然后再去解析地址即可。接下来动手验证。

先用C/C++编写一个带字符串数组参数的函数,然后编译成Dll供调用,如下图所示:

LabVIEW

LabVIEW

接着用C语言去调用该Dll,测试结果符合预期,如下图所示:

LabVIEW

接下来在LabVIEW中进行调用测试,其中需要用到有关内存分配和指针解析的VI,在LabVIEW的安装目录下(LabVIEW 20xxvi.libUtilityimportsl),如下图所示:

LabVIEW

程序框图实现如下图所示,运行结果符合预期。

LabVIEW

其中调用库函数节点配置如下图所示:

LabVIEW

LabVIEW

下载链接:https://pan.baidu.com/s/1-cNLXTelzTqv-aU5I-swLg

提取码:r605

审核编辑 :李倩

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分