如何将float(*顶点)[3]添加到C#中
本文关键字:添加 float 顶点 | 更新日期: 2023-09-27 18:24:45
我需要将C结构转换为C#结构。
在C:
typedef struct Lib3dsMesh {
//..
float (*vertices)[3];
//..
}
在C#中:
[System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential, CharSet = System.Runtime.InteropServices.CharSet.Ansi)]
public struct Lib3dsMesh
{
????
}
它用于将3ds C库用于我的C#项目。
.net中没有很好的支持常量大小的内联数组(您可以使用fixed
关键字,但我通常会避免)。所以我会使用一个有3个字段的结构。
[StructLayout(LayoutKind.Sequential)]
struct Vector3f
{
public readonly float X,Y,Z;
}
[StructLayout(LayoutKind.Sequential)]
unsafe struct Lib3dsMesh {
public Vector3f* vertices;
}