DLL<->VB間での受け渡し(文字列・ポインタ)
VBで開発を行っていますが、
DLL<->VBでのやり取りでポインタ?のの引渡しで困っております。
簡単に言うと、指定したキーで、内容(データ)を取出し、さらに
要素ごとにデータを取出すという仕組みです。
例ですが、DLLの仕様は
TR_MR(No,Id,Buff)
Noは検索No.
Idは取出す位置
buffはデータバッファ領域のポインタ
で、Idで指定された位置からデータをbuffに読み込む
(戻り値は、buffにセットされたデータのバイトサイズ)
TR_MR_IT(buff,Tagset,Dat)
buffは先ほど取り込んだデータバッファ領域のポインタ
Tagsetは項目識別子のポインタ
Datはデータ上の1項目の文字列
と言う具合です。
VBでの宣言は
===================================================
Private Type Tagset
tagno As String * 3
Subf As String * 1
seq As Integer
End Type
Private Declare Function TR_MR Lib "tr.dll" (ByVal no As Integer, ByVal Id As Integer, ByVal buff As String) As Integer
Private Declare Function TR_MR_IT Lib "tr.dll" (ByVal buff As String, ByRef tg As Tagset, ByVal dat As String) As Integer
Dim buf_size As Integer
Dim MR_buff As String
MR_buff = String(65562, vbNullChar)
buf_size = TR_MR(no, 1, MR_buff)
Dim tg As Tagset
Dim MR_size As Integer
Dim MR_IT_buff As String
tg.tagno = "001"
tg.Subf = "A"
tg.seq = 1
MR_IT_buff = String(12282, vbNullChar)
MR_size = TR_MR_IT(MR_buff, tg, MR_IT_buff)
===================================================
長々と書いてしまいましたが、
何か、助言をいただければ幸いです。
お礼
丁寧な回答まことにありがとうございました。スッキリいたしました(笑)。