<Double> LabView 中的原生向量作为参数/返回
Native Vector<Double> in LabView as an Argument/Return
我正在为C++DLL制作一个包装器。在函数中,我需要返回一个vector<double>
。我研究了文件,读到我们只能返回int
和string
。对于返回任何其他变量,我们需要将其作为参数传递。但可用的变量类型有Numeric
、String
、Array
。那么,如何从LabView中的本机函数中获取vector<double>
呢。
在C++中,向量存储为数组,如果v是vector <double>
,则第一个元素地址是&v[0]
。在LabVIEW中,CLFN节点允许您通过指针或句柄传递数组。因此,您有3个解决方案:
- 将预先分配的数组(通过指针)传递到DLL中,填充它,它将在CLFN完成执行后可用
- 通过句柄将数组传递给CLFN,并通过LabVIEW内存管理器相应地调整其大小,在CLFN完成执行后,数组的内容将可用
- 如果数组真的很大(100 MB),并且您真的必须在C++代码中使用std:vector,我建议您基于LabVIEW内存管理器定义自己的分配器,以避免复制
相关文章:
- 如何返回向量的常量引用?
- 如何在C++中返回向量的从零开始的索引
- 当函数返回C++向量实例时,它正在运行
- 从函数返回向量以打印内容
- 返回向量的单个索引值
- 为什么我不能返回向量<向量<int>>(进程返回 -1073741819 (0xC0000005))
- 返回向量元素的 l 值的正确方法是什么?
- 为什么通过引用返回向量比通过移动返回要快得多?
- 返回向量 C++ 上的递归
- C++ std::find() 寻址返回向量的类函数时的意外行为
- 如何在返回向量中访问系数
- C++ 函数返回向量中最小的正整数
- 查找并将指针返回向量中的对象
- getCompatibleComponent返回向量错误
- 如何从 JNI 返回向量<向量<float>>?
- 为什么下面的代码返回向量大小为 10
- 从函数返回向量时C++中止(核心转储)
- 如何正确地将向量<int>转换为空隙*并返回向量<int>?
- 接口 PTR 的返回向量C++
- C++ cv::Mat 返回向量的<rectangle>线程异步