我想将结构数组从 C++ dll 返回到 c#。我正在尝试如下:
在 C++ 代码中:
Vertex*
GetVertices(Vertex* vertices, float aPos, int& vSize) {
if ( !plane ) {
plane = new ClipPlane;
plane->type = PlaneType;
}
Vertex* v = plane->mesh->vertex;
vSize = plane->mesh->size*3;
vertices = v;
return vertices;
}
并将其导出为 c++Some_API Vertex* GetVertices(Vertex*, float, int &);
在 C# 方面:
[DllImport("some.dll", CallingConvention = CallingConvention.Winapi)]
public static extern IntPtr GetVertices(Vertex[] vertices, float aPos, ref int vSize);
并称它为:
GetMeshSize(x_value, ref vSize);
Vertex[] vertices = new Vertex[vSize];
GetVertices(vertices, x_value, ref vSize);
暂时忘记 vSize 和 x_value。我的问题是我无法在 c# 中获取顶点的值,我只想知道如何在 c# 中编组 struct Vertex 的数组。请注意,我对元帅一无所知。