最終更新:2019-11-18 (月) 17:10:45 (1592d)
StructLayout
Top / StructLayout
Win32 APIやDLL関数に渡す構造体を定義する場合は、そのメンバの配置方法を変更する必要がある。これを実現するには、構造体に対してStructLayout属性を設定する。このとき、配置方法としてLayoutKind列挙体のメンバのいずれかを指定する。
C言語などの構造体と同様に、メンバが宣言された順に配置されるようにするには、LayoutKind.Sequentialという値を指定すればよい。
C言語からC♯に変換
typedef struct { LONG x; LONG y; } POINT;
↓
[StructLayout(LayoutKind.Sequential)] struct POINT { public int x; public int y; }
パラメータ (StructLayoutAttribute?)
LayoutKind
Size
- クラスまたは構造体の絶対サイズを示します。
Pack
- メモリ内のクラスまたは構造体のデータ フィールドのアライメントを制御します。
- 既定では、値は0