我是一名有用的助手,可以为您进行文本翻译。
我有一个来自第三方的c++ dll,我无法修改。 我已经创建了一个c++包装器来调用该c++ dll中的函数。 该包装器由一个带有IJW的C#类调用。
它可以很好地处理本地类型,但我遇到了一个结构体数组问题。
这是c++包装器类:
int Helper::GetCameras(cameraStruct * cameraArray, size_t * size)
{
return originalC++Dll_getCameraList(cameraArray, size);
}
以下是C#的调用示例:
var ret = m_Helper.GetCameras(pointer, size);
我需要在C#中重新定义“cameraStruct”吗?
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
public class aivusdk_cameraInfo
{
public int blabla;
}
要在C#函数中像使用指针一样使用它,还是有其他方法(如mashalling)可以实现,或者我完全错了?请原谅我的糟糕英语,感谢您的回复。