掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
VB.netで構造体メンバーのアライメント設定をするには (ID:110040)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
このような構造体を定義したいのですが、 <StructLayout(LayoutKind.Explicit, Size:=10, CharSet:=CharSet.Ansi)> _ Structure STRC_TEST1 <FieldOffset(0)> Dim A As Short ''2バイト整数 <FieldOffset(2)> Dim B As Integer ''4バイト整数 <FieldOffset(6), VBFixedArray(1), MarshalAs(UnmanagedType.ByValArray, SizeConst:=2)> Dim C() As Byte ''2バイト整数 <FieldOffset(8)> Dim D As Short Public Sub Init() ReDim C(1) End Sub End Structure <StructLayout(LayoutKind.Explicit, Size:=18, CharSet:=CharSet.Ansi)> _ Structure STRC_TEST2 <FieldOffset(0)> Dim Test1 As STRC_TEST1 ''STRC_TEST構造体 <FieldOffset(10)> Dim E As Integer ''4バイト整数 <FieldOffset(14), VBFixedString(2), MarshalAs(UnmanagedType.ByValTStr, SizeConst:=2)> Dim F As String ''2バイト文字 <FieldOffset(16), VBFixedArray(1), MarshalAs(UnmanagedType.ByValArray, SizeConst:=2)> Dim G() As Byte ''2バイトのバイト配列 Public Sub Init() F = Space(2) ReDim G(1) End Sub End Structure ヘルプの「StructLayoutAttributeクラス」を見ると、 上記のような書き方っぽいのですが、実行すると、 アセンブリ '6' の型 'STRC_TEST1' を読み込めませんでした。 オフセット 6 に不適切に整列されたか、オブジェクト以外のフィールドで オーバーラップされたオブジェクト フィールドが含まれています。 というエラーが出ます。 もうどうすればいいのかわからなくて、藁にもすがる思いです。 自分の構造体定義のどの部分が悪いのか、教えていただけないでしょうか?
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.