- - PR -
VB2005で構造体2次元配列に1次元配列をコピーする方法
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-11-18 22:58
VB2005を使用して現在構造体の2次元配列のデータに
1次元配列のデータをcopymemory関数を使ってコピーさせています。 その結果コピーが終わった後の構造体配列が2次元から1次元に変わって しまいます。 Imports System.Runtime.InteropServices Public Module MdlTest ***構造体宣言*** Public Structure A Public aaa As Short End Structure Public Structure B <VBFixedArray(2,2) , MarshalAs(UnmanagedType.ByValArray, sizeconst:=4)>_ Public sAAA(,) As A public Sub initialize() ReDim sAAA(1,1) End Sub End Structure ***CopyMemory用API関数定義*** Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (ByRef Destination As MdlTest.B , ByRef Source As Short, ByVal Length As Integer) End Module Public Class Form1 'ボタン1クリック時処理 Private Sub Button1_Click(ByVal sender As System.Object, Byval e As ... ***構造体実体宣言*** Dim sBBB As New B sBBB.initialize() ***配列宣言*** Dim Buf(3) As Short For i As Integer = 0 To 3 Buf(i) = i + 1 Next CopyMemory (sBBB, Buf(0), 4 * 2) End Sub End Class ここでsBBBの内容は(2,2)の配列だったのですが、 CopyMemory関数を実行した後はなぜかsBBBの配列が(3)に なってしまいます。 どのようにしたら2次元配列のままコピーができるのでしょうか。。。 | ||||
|
投稿日時: 2006-11-18 23:10
クロスポストかよ。 http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=34998&forum=7 |
1