gpt4 book ai didi

string - 如何使用调用库函数节点将字符串传递回labview

转载 作者:行者123 更新时间:2023-12-01 00:08:47 24 4
gpt4 key购买 nike

我想使用LabVIEW的调用库函数节点来访问一个DLL函数,并让这个函数返回一个字符串以显示在我的VI上。我该怎么做呢?我很高兴从我的 DLL 中返回数字,但我真的很难找到任何关于如何返回字符串的示例。

最佳答案

至少有几种方法可以从调用库函数节点返回字符串:

  • 从您的 DLL 函数返回一个 C 字符串指针,并将调用库函数节点配置为具有“C 字符串指针”的返回类型。注意,返回的字符串必须在函数返回后才有效,所以不能是指向栈上分配的字符串的指针。它必须是以下之一:在堆上分配、静态分配、常量字符串文字等。
    看起来像 examples/dll/regexpr/Regular Expression Solution/VIs/Get Error String.vi在 LabVIEW 目录中采用了这种方法。
  • 在您的 VI 中分配一个字符串,使用 Azim 建议的“C 字符串指针”参数将其传递给调用库函数节点,然后覆盖其在 DLL 中的内容。分配字符串的一种方法是使用 Initialize Array 创建所需大小的 u8 数组,然后使用 Byte Array To String 将其转换为字符串。
    确保您传入的字符串足够大以容纳字符串的内容,并确保将字符串长度传递给 DLL,以便它知道缓冲区有多大。我相信默认参数是一个空字符串。如果您的 VI 的第一次猜测不够大,那么确定正确的字符串长度可能需要调用 DLL 两次。
  • 使用“字符串句柄”参数将字符串传递给调用库函数节点,并根据需要使用 DLL 中的 LabVIEW 函数来调整字符串的大小。这要求您的 DLL 专门设计为与 LabVIEW 交互,并且需要链接到 LabVIEW 提供的静态库。
    此方法的一个示例随 LabVIEW 一起提供,名称为 examples/dll/hostname/hostname.vi。 .
  • 关于string - 如何使用调用库函数节点将字符串传递回labview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/269062/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com