LabView 中的 Native Vector<Double> 作为 Argument/Return

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

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

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

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