一、C#重写C++中的结构体
1、结构体前加了[StructLayout(LayoutKind.Explicit)];
StructLayout中LayoutKind是一个枚举类型:
LayoutKind 枚举
控制当导出到非托管代码时对象的布局。
命名空间: System.Runtime.InteropServices
程序集: mscorlib(在 mscorlib.dll 中)
成员名称 | 说明 | |
---|---|---|
![]() | Auto | 运行库自动为非托管内存中的对象的成员选择适当的布局。使用此枚举成员定义的对象不能在托管代码的外部公开。尝试这样做将引发异常。 |
![]() | Explicit | 对象的各个成员在非托管内存中的精确位置被显式控制。每个成员必须使用 FieldOffsetAttribute 指示该字段在类型中的位置。 |
![]() | Sequential | 对象的成员按照它们在被导出到非托管内存时出现的顺序依次布局。这些成员根据在 StructLayoutAttribute.Pack 中指定的封装进行布局,并且可以是不连续的。
结构体是由若干成员组成的.布局有两种 |