<Double> LabView 中的原生向量作为参数/返回

Native Vector<Double> in LabView as an Argument/Return

本文关键字:返回 向量 参数 Double lt gt LabView 原生      更新时间:2023-10-16

我正在为C++DLL制作一个包装器。在函数中,我需要返回一个vector<double>。我研究了文件,读到我们只能返回intstring。对于返回任何其他变量,我们需要将其作为参数传递。但可用的变量类型有NumericStringArray。那么,如何从LabView中的本机函数中获取vector<double>呢。

在C++中,向量存储为数组,如果v是vector <double>,则第一个元素地址是&v[0]。在LabVIEW中,CLFN节点允许您通过指针或句柄传递数组。因此,您有3个解决方案:

  1. 将预先分配的数组(通过指针)传递到DLL中,填充它,它将在CLFN完成执行后可用
  2. 通过句柄将数组传递给CLFN,并通过LabVIEW内存管理器相应地调整其大小,在CLFN完成执行后,数组的内容将可用
  3. 如果数组真的很大(100 MB),并且您真的必须在C++代码中使用std:vector,我建议您基于LabVIEW内存管理器定义自己的分配器,以避免复制