0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

jf_xutpKvFS 来源:LabVIEW QT 修炼之路 2023-04-25 14:02 次阅读

LabVIEW:2015

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

5ff00a30-e320-11ed-ab56-dac502259ad0.jpg

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

6016aafa-e320-11ed-ab56-dac502259ad0.png

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

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

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

6050601a-e320-11ed-ab56-dac502259ad0.png

60655a06-e320-11ed-ab56-dac502259ad0.png

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

607db466-e320-11ed-ab56-dac502259ad0.png

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

609a2dda-e320-11ed-ab56-dac502259ad0.png

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

60b509ca-e320-11ed-ab56-dac502259ad0.png

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

60d89660-e320-11ed-ab56-dac502259ad0.png

60ed95c4-e320-11ed-ab56-dac502259ad0.png

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

提取码:r605

审核编辑 :李倩

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

    关注

    1918

    文章

    3619

    浏览量

    316973
  • C语言
    +关注

    关注

    180

    文章

    7528

    浏览量

    128432
  • 数组
    +关注

    关注

    1

    文章

    409

    浏览量

    25593

原文标题:如何处理C Dll中的字符串数组参数

文章出处:【微信号:LabVIEW QT 修炼之路,微信公众号:LabVIEW QT 修炼之路】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    labview中去掉字符串数组某列字符串的某个字符

    在做一个转换文本格式的程序,遇到一个问题,在把一个二维的字符串数组的某列(第一列和第六列)字符串的“0x”去掉的过程
    发表于 12-08 10:07

    求助大神关于LabView数组字符串转化为字符串的问题

    我在写一个程序,把for循环置于事件结构内,从for循环出来的是字符串,可从事件结构出来的却是1-D数组字符串,现在我想把它还原成字符串,请问有什么办法吗??
    发表于 04-14 10:17

    如何将dll字符串数组,传入labview

    如题,dll的函数类型怎么写,labview调用库函数节点改怎么写?求大神指教,急不是单个字符串,是一个字符串数组
    发表于 11-23 15:53

    怎样将已经输入的字符串存储在数组——字符串

    怎样将已经输入的字符串存储在数组——字符串,或类似的存储一段文章?
    发表于 05-05 08:42

    matlab如何调用C标准的dll字符串数组

    如题,有一个用labview创建的C标准的dll,分别有一个输入输出字符串类型数组,在matlab下如何调用该dll,输入
    发表于 06-16 13:08

    LabVIEW函数“电子表格字符串数组转换”的数组类型如何变成字符串数组而不是数值数组

    LabVIEW函数“电子表格字符串数组转换”的数组类型如何变成字符串数组而不是数值
    发表于 07-20 16:29

    labview如何将字符串数组元素的英文转化为字符串数组中文显示,字符串数组各元素值是变化的

    各位大神,labview如何将字符串数组元素的英文转化为字符串数组中文显示,字符串数组各元素值是
    发表于 01-15 15:09

    LABVIEW 字符串变成字符数组

    怎么把一个字符串变成一个字符数组 ? 比如String "abc" 变成string[]{"a","b","c"}这种
    发表于 04-21 18:02

    如何将字符串按输入顺序连接到字符串数组

    有一个字符串输入控件,每输入一个名称,点击按钮让其最终显示在“菜单式下拉列表”,我尝试了使用“菜单式下拉列表”属性节点“字符串[]”,但是发现输入格式是"
    发表于 07-27 19:17

    什么是指向字符串指针?

    的方式在做字符串处理的时候,非常吃力,最好的方式就是可以将这些字符存储到一个集群式的变量里面,我们C语言中集群式的存储类型只有数组一种类型,
    发表于 03-15 14:19

    字符串字符数组的转换字符数组介绍

    字符串字符数组的转换字符数组 -----》字符串1:直接在构造String时转换。char[]
    发表于 01-12 07:01

    字符串处理函数的作用是什么

    / 字符串处理函数 / stract函数 字符串连接函数例:printf(“%s”, stract(str1, str2));strcpy(字符串
    发表于 02-25 06:41

    用指针实现字符串拷贝的程序和字符型指针变量与字符数组的区别说明

    字符串是存放在字符数组中的,对字符数组中的字符逐个处理
    发表于 11-05 16:15 2次下载
    用指针实现<b class='flag-5'>字符串</b>拷贝的程序和<b class='flag-5'>字符</b>型指针变量与<b class='flag-5'>字符</b><b class='flag-5'>数组</b>的区别说明

    C语言字符数组字符串有什么区别

    用来存放字符数组称为字符数组字符数组的各个元素依次存放
    的头像 发表于 02-17 14:27 2613次阅读

    字符数组字符串有没有区别?

    字符数组字符串有没有区别?
    的头像 发表于 11-30 16:39 333次阅读