2

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 をスローします。

助けてください。道に迷いました。

4

1 に答える 1

1

この例外は、上記の構造体のマーシャリングとは直接関係ないようです。

別のスレッドによる同じインスタンスへのクロス アクセスのコードを調べてください。

于 2013-11-13T09:38:17.350 に答える