gpt4 book ai didi

c - 从LabVIEW数组中获取内存地址

转载 作者:行者123 更新时间:2023-11-30 16:29:42 27 4
gpt4 key购买 nike

我使用 Visual Studio 编写了一个 C++ DLL,并添加了一个 C 包装器以在多种语言(C++、Python、LabVIEW...)上使用它。在这一篇中,我正在处理图像,即二维数组。我使用 LabVIEW 工具创建了一个 Labview 库,因此我将此库附加到我的项目中。

首先,分配和释放 DLL 句柄的函数工作正常,因此通信似乎正常。此外,我的 DLL 函数将图像第一个像素上的指针(即选项卡的第一个值)作为参数,以便重新创建矩阵(OpenCV 库)来执行一些操作。

但是我不知道如何在LabVIEW上获取数组的内存地址,并且互联网上的不同帖子并不总是很清楚。

这是 C 函数:

__declspec(dllimport) unsigned short* __stdcall imAdjustBrightness(void* handle, void * ptrImg, int width, int height, int inputType, int brightnessValue)
{
if (handle)
{
EpsImageProcessing* data = (EpsImageProcessing*)handle;
return data->imAdjustBrightness(ptrImg, width, height, inputType, brightnessValue);
}
return NULL;
}

以及 VI 的屏幕截图:

main VI library function

预先感谢您的任何建议/帮助。

最佳答案

如果您需要传递一个指向labview数组的指针,您可以像这样配置“调用库函数”节点:

  1. 在“参数”选项卡上选择您感兴趣的参数在
  2. 在右侧面板的“类型”中选择“适应类型”下拉菜单
  3. 在“数据格式”下拉列表中选择“数组数据指针”

此设置应传入指向数组第一个元素的指针。

调用库函数节点的选项已记录here

关于c - 从LabVIEW数组中获取内存地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51629730/

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