- - PR -
構造体を含む構造体のCopyMemoryについて
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2006-06-21 10:16
構造体を含む構造体をCopyMemoryする方法をご教示願います。
======構造体の宣言部===== <StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Ansi), Serializable()> Public Structure GRP_A <VBFixedArray(96 - 1), MarshalAs(UnmanagedType.ByValArray, SizeConst:=96)> Dim a_data() As Byte Public Sub Initialize() ReDim a_data(96 - 1) End Sub End Structure <StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Ansi), Serializable()> Public Structure TBL_A <VBFixedArray(20 - 1), MarshalAs(UnmanagedType.ByValArray, SizeConst:=20)> Dim grp() As GRP_A Public Sub Initialize() ReDim grp(20 - 1) Dim i As Integer For i = 0 To 20 - 1 grp(i).Initialize() Next End Sub End Structure ======================== ======ボタンクリックで書き込みを行う====== Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim res As Integer Dim a As TBL_A a.Initialize() res = 書き込み関数(メモリ名称, オフセット, サイズ, a) End Sub ========================================== Public Function 書き込み関数(ByVal メモリ名称 As String, ByVal オフセット As Integer, ByVal サイズ As Integer, ByRef pBuf As TBL_A) As Integer OpenFileMapping MapViewOfFile CopyMemory(ファイルがマップされたビューの開始アドレス + オフセット, pBuf, サイズ) <-エラーが発生します UnmapViewOfFile End Function =========================================== エラーメッセージ内容: 型 TBL_Aのフィールドgrpをマーシャリングできません。 この型は構造体フィールドとして、マーシャリングできません。 同様の方法で、構造体を含まない構造体の場合はうまくいっています。 |
1