次のシグネチャを持つ関数を使用するサードパーティの C++ dll を使用しています。
extern "C" __declspec(dllimport) int __stdcall CalcDDtable(struct ddTableDeal tableDeal,
struct ddTableResults * tablep);
int
各構造体には、 s (VB6 s) の固定 1 次元配列が 1 つだけ含まれていますLong
。tablep
結果が含まれます。
C++ 宣言は次のとおりでした。
extern "C" __declspec(dllimport) int __stdcall CalcDDtable(int * tableDeal, int * tablep);
その場合、VB6Declare
ステートメントは次のようになります。
Declare Function CalcDDtable Lib "my3rdParty.dll"(ByRef lngTable as Long,ByRef lngResult as Long) as int
This code would be called like:
Dim lngTables(15) As Long
Dim lngResults(20) As Long
'Initialize the lngTables array...
intResult=CalcDDtabel(lngTables(0),lngResults(0))
しかし、最初の配列がポインターではない構造体にパッケージ化されているため、上記の関数を宣言する方法がわかりません。