dポイントプレゼントキャンペーン実施中!

.NET C++の構造体のマーシャリングについて勉強中です。
構造体のマーシャリングに 'StructLayoutAttribute' を用いる場合、
[StructLayout(LayoutKind::Sequential, Pack=8)]などと記述するようですが、msdnのドキュメントから 'StructLayout' の仕様を探すことができませんでした。

'StructLayoutAttribute'クラスの仕様はあり、おそらくこれと関連しているとは思うのですが、そのメンバやメソッドに 'StructLayout' がありません。

このあたりの理解を得るためのヒントを頂けると幸いです。
宜しくお願いします。

A 回答 (2件)

http://msdn.microsoft.com/en-us/library/bfz783fz …

>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 …
    • good
    • 0
この回答へのお礼

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

お礼日時:2010/02/23 12:50

[StructLayout(LayoutKind::Sequential, Pack=8)]



の'StructLayout'の部分は、StructLayoutAttributeクラスのコンストラクタにあたります。コンストラクタの仕様を見ると、引数にLayoutKind列挙値を取るのがわかると思います。
続く'Pack=8'は、StructLayoutAttributeクラスのPackプロパティに8を設定する・・・という意味になります。
    • good
    • 0
この回答へのお礼

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

お礼日時:2010/02/23 12:49

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!