Also found this information, removing the MarshalAs and use discrete variables works, ie // public ushort Avg0; // [MarshalAs(UnmanagedType.ByValArray, SizeConst = 12)] //public ushort[] Avg; public ushort Avg0;public ushort Avg1;public ushort Avg2;public ushort Avg3;public ushort Avg4;public ushort Avg5;public ushort Avg6; public ushort Avg7;public ushort Avg8;public ushort Avg9;public ushort Avg10;public ushort Avg11; also, [StructLayout(LayoutKind.Sequential, Pack = 1, CharSet = CharSet.Ansi), Serializable] public struct byteD { ushort Lo, Hi; [MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)] byte[] Comment; };
[StructLayout(LayoutKind.Sequential, Pack = 1, CharSet = CharSet.Ansi), Serializable] public struct charD { ushort Lo, Hi; [MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)] char [] Comment; }; Console.WriteLine("byteD " + Marshal.SizeOf(typeof(byteD)).ToString() + " charD " + Marshal.SizeOf(typeof(charD)).ToString()); Ouputs on .NET 2.0 Hello World byteD 36 charD 36 On 1.1.14 Hello World byteD 36 charD 68 "Zoltan Varga" <[EMAIL PROTECTED]> wrote in message news:[EMAIL PROTECTED] Hi, This is a known bug and it is tracked as: http://bugzilla.ximian.com/show_bug.cgi?id=77788 Zoltan _______________________________________________ Mono-devel-list mailing list Mono-devel-list@lists.ximian.com http://lists.ximian.com/mailman/listinfo/mono-devel-list