• ベストアンサー

'StructLayout' の仕様について

.NET C++の構造体のマーシャリングについて勉強中です。 構造体のマーシャリングに 'StructLayoutAttribute' を用いる場合、 [StructLayout(LayoutKind::Sequential, Pack=8)]などと記述するようですが、msdnのドキュメントから 'StructLayout' の仕様を探すことができませんでした。 'StructLayoutAttribute'クラスの仕様はあり、おそらくこれと関連しているとは思うのですが、そのメンバやメソッドに 'StructLayout' がありません。 このあたりの理解を得るためのヒントを頂けると幸いです。 宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

http://msdn.microsoft.com/en-us/library/bfz783fz.aspx >By convention, all attribute names end with Attribute. However, several languages that target the runtime, such as Visual Basic and C#, do not require you to specify the full name of an attribute. For example, if you want to initialize System..::.ObsoleteAttribute, you only need to reference it as Obsolete. =========== その他、ユーザー定義の属性の作り方とその使用法 http://msdn.microsoft.com/en-us/library/84c42s56.aspx#cpcondeclaringattributeclass

_hitoshi_
質問者

お礼

'Attribute' を省略できるということですね。 回答ありがとうごさいました。

その他の回答 (1)

  • reset_cat
  • ベストアンサー率68% (94/138)
回答No.1

[StructLayout(LayoutKind::Sequential, Pack=8)] の'StructLayout'の部分は、StructLayoutAttributeクラスのコンストラクタにあたります。コンストラクタの仕様を見ると、引数にLayoutKind列挙値を取るのがわかると思います。 続く'Pack=8'は、StructLayoutAttributeクラスのPackプロパティに8を設定する・・・という意味になります。

_hitoshi_
質問者

お礼

回答ありがとうごさいました。

関連するQ&A