掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ポインタからの構造体配列の取得 (ID:147328)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
質問失礼します。 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 何かご存知の方いらっしゃいましたらご教授ください。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.