掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
.NETによるVCのDLLへ構造体配列を引き渡す方法について (ID:110274)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
VBにて、 次のように設定すると構造体配列の値をVCへ渡すことはできました。 VC側では普通の構造体配列と同様に回せました。 Declare Auto Sub SomeFunc Lib "vc.dll" ( _ <MarshalAs(UnmanagedType.LPArray, SizeParamIndex:=1)> ByVal emp() As EMPLOYEE, ByVal size As Long) しかし、 これでは「ByVal」しか設定ができないため、 VBから入力構造体配列を渡すときはともかく、 出力構造体配列を渡すときに結果を設定して戻すことができませんでした。 また、 岡田 之仁さんがおっしゃるようにポインタのポインタで渡しているため、 VBでは普通に渡してから、VCがわにて「char**」にて取得して、 構造体配列の先頭アドレスを取得もできました。 しかし、 その場合は構造体の書き換えが成功はしたものの、 複数領域を渡したはずなのに、VBに戻ってみると要素数が1つになっていました。 これは、 領域が壊れたんでしょうか? 配列の領域がどうアドレス空間で設定されているかについての 資料はヘルプにあるのでしょうか? 見つけれなかったので、良ければご教授お願いします。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.