重複していないフィールドが重複していると報告されている構造体があります。
[FieldOffset(8)]
Int32 X;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 16)]
[FieldOffset(12)]
string Y;
[FieldOffset(28)]
int Z;
報告されたエラーは次のとおりです。
タイプ「XXX」を読み込めませんでした...オフセット12にオブジェクトフィールドが含まれていますが、オブジェクトフィールドが正しく配置されていないか、オブジェクトフィールドと重なっています。
これは、リリース構成(TRACE、DEBUGフラグ、および安全でないコードが有効で、最適化がオフになっている)でのみ発生します。推測すると、どうなりますか?
UPD:@svickに感謝します。x64ビルドがマーシャリングに必要なものではないことを確認しました。