ポインタからの構造体配列の取得


nao  2011-06-05 20:11:27  No: 147328  IP: [192.*.*.*]

質問失礼します。
VB2005でポインタから構造体配列を取得することができず、困っています。
使用言語はVB2005、VC++2008,OSはWindows7です。

VC++で作成したDLLからコールバックされる関数の引数に構造体配列のポインタが
指定されており、その構造体配列をVB2005側で取得したいのですがうまくいきません。
marshal.copyでは構造体は扱えず、
marshal.ptrToStructでは配列の先頭の構造体しか取得できませんでした。
VC++側で構造体配列は連続的に配置されています。

以下、コードです。

    ’構造体の宣言
    <StructLayout(LayoutKind.Sequential, Pack:=1)> _
    Public Structure glbImage
        <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=1024)> Dim filePath As String
        Dim saveCount As Integer
        Dim Result As Integer
    End Structure

    'コールバック関数
    Public Function CallBack(ByVal pImages As IntPtr,ByVal FileNum as Integer) As UInt32

        Dim rvImages As glbImage
        Dim rvImagesArray(FileNum - 1) As glbImage

        '配列の先頭の構造体のみ取得可能
        rvImages = Marshal.PtrToStructure(pImages, rvImages.GetType)
  
        '取得できず
  rvImagesArray = Marshal.PtrToStructure(pImages, rvImages.GetType)

    End Function

何かご存知の方いらっしゃいましたらご教授ください。

編集 削除
とくま  2011-06-07 10:15:43  No: 147329  IP: [192.*.*.*]

http://bbs.wankuma.com/index.cgi?mode=al2&namber=59729
解決済みらしい。

編集 削除