我用Visual Studio编写了一个C ++ DLL,并添加了一个C包装程序以在多种语言(C ++,Python,LabVIEW等)上使用它。在这一本书中,我要处理图像,即2D阵列。我使用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的屏幕截图:
在此先感谢您的任何建议/帮助。