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
    +关注

    关注

    1963

    文章

    3652

    浏览量

    322423
  • C语言
    +关注

    关注

    180

    文章

    7598

    浏览量

    136193
  • 数组
    +关注

    关注

    1

    文章

    415

    浏览量

    25908

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

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

收藏 人收藏

    评论

    相关推荐

    C++字符串string

    string是C++编程语言中的字符串。在C++字符串处理可以使用
    的头像 发表于 07-10 00:26 1221次阅读
    <b class='flag-5'>C</b>++<b class='flag-5'>字符串</b>string

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

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

    数组、向量和字符串 实验

    实验 5 数组、向量和字符串一、实验目的 1. 掌握Java数组定义、引用2. 掌握向量的基本概念和应用技术3. 掌握使用
    发表于 09-23 19:00 1538次阅读

    C语言字符串转数字实现方法

    C/C++语言中没有专门的字符串变量,通常用字符数组来存放字符串
    发表于 11-14 17:50 1.3w次阅读

    C语言的字符串处理函数

    指针是神奇的,指向整型的指针int *p1,可以操作整型数组int a[];指向字符型的指针char *p2,可以操作字符数组字符串)ch
    发表于 07-24 17:37 4次下载
    <b class='flag-5'>C</b>语言的<b class='flag-5'>字符串</b><b class='flag-5'>处理</b>函数

    电子表格字符串数组转换和改良LabVIEW资料免费下载

    由于labiview自带的电子表格字符串数组转换子VI存在输出的数组会被字符串的单个回车影响,这会导致单元格带有回车的
    发表于 07-03 08:00 10次下载
    电子表格<b class='flag-5'>字符串</b>至<b class='flag-5'>数组</b>转换和改良LabVIEW资料免费下载

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

    字符串是存放在字符数组的,对字符数组
    发表于 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语言-字符串处理

    字符串C语言里使用非常多,因为很多数据处理都是文本,也就是字符串,特别是设备交互、web网页交互返回的几乎都是文本数据。 这篇文章就介绍字符串
    的头像 发表于 08-14 10:05 1723次阅读

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

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

    简述数组字符串组的使用

    在Python我们通常也会用到数组字符串组并且能快速方便的构建出来,那么在java构建数组是否是类似的呢?
    的头像 发表于 02-23 11:09 476次阅读
    简述<b class='flag-5'>数组</b>及<b class='flag-5'>字符串</b>组的使用

    C语言字符串的引用方式

    C语言程序字符串是存放在字符数组的。 2. 用字符
    的头像 发表于 03-10 14:57 1844次阅读

    c语言字符串定义

    C语言是一种强大而广泛使用的编程语言,字符串是其中一个非常重要的概念。在C语言中,字符串是由一系列字符组成的
    的头像 发表于 11-24 10:02 1816次阅读

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

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

    C语言字符串编译函数介绍

    C语言中,字符串实际上是使用null字符O'终止的一维字符数组。因此,一个以null结尾的
    的头像 发表于 03-07 16:18 478次阅读
    <b class='flag-5'>C</b>语言<b class='flag-5'>字符串</b>编译函数介绍

    labview字符串数组转化为数值数组

    在LabVIEW,将字符串数组转换为数值数组是一项常见的任务,尤其是在处理数据采集、信号处理
    的头像 发表于 09-04 17:47 1800次阅读