FrameworkC/C++にあるunionをC#で使用する方法は、ネットにいくつか解説しているサイトがあります。構造体がunionになったものは例があまりないため紹介したいと思います。"LayoutKind.Explicit"(明示的にレイアウトを指定する)とFieldOffsetの組み合わせで実現できます。Parent;上記に対応するC/C++のコードExplicitの時はByValArrayを指定できないえー、、、これ本当に?別にいいと思うんだけど...StructLayoutをLayoutKind.Explicitにした場合、ByValArrayのメンバーを指定すると実行時に以下のエラーが出て指定できません。読み込めませんでした。フィールドが含まれています。'具体的には以下コードになります。SecondMemberByteArray;}回避手段は2つあります。fixedキーワードを組み合わせる。コードの許可」をする必要があります。fixedキーワードで固定長配列を宣言}2つめは、やや力業です。バイト配列をバイトにバラしてしまいます。各メンバーにFieldOffsetを指定すれば問題は起きません。SecondMemberByte_4;}よくある間違い余談ですが以下メッセージは、コーディング間違えの可能性が高いです。自分の実装を見ましょう。アンマネージ構造体としてマーシャリングできません。有効なサイズ、またはオフセットの計算ができません。'ほんの一例ですが、以下のように属性と宣言でサイズが異なる場合に出たりします。»Profile受託ソフト会社員でWin系業務屋。趣味でCocos2d-x/C++を触っています。etc...主に受託・開発ネタ、Windowsの事、Srellaris、ゲーム制作の進捗の事を喋ります。Core3.xとUnityでAES暗号化を利用するC#の標準機能でデータを圧縮・展開するC#で属性を利用して処理に制約の説明を追加するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。