我正在尝试将 byte[] 转换为包含包含数组的结构的数组的结构。
像这样的东西:
[StructLayout(LayoutKind.Sequential, Pack = 4)]
public struct Util_VersionType
{
[MarshalAs(UnmanagedType.ByValArray, ArraySubType = UnmanagedType.LPStr, SizeConst = 5000)]
public DataItemsString[] Data;
}
[StructLayout(LayoutKind.Sequential, Pack = 4)]
public struct DataItemsString {
[MarshalAs(UnmanagedType.ByValArray, ArraySubType = UnmanagedType.U1, SizeConst = 10)]
public System.Byte[] Value;
public System.UInt32 Validity;
}
我使用 Marshal.PtrToStructure
有时没有问题,但在大约 100 次尝试中,CLR 会抛出无法捕获的 ExecutionEngineException。
请帮忙。我迷路了。