我正在使用第三方 C++ dll,它使用具有以下签名的函数:
extern "C" __declspec(dllimport) int __stdcall CalcDDtable(struct ddTableDeal tableDeal,
struct ddTableResults * tablep);
每个结构仅包含一个固定的一维数组int
s (VB6 Long
s)。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))
但是我不知道如何声明上面的函数,因为第一个数组被打包在一个不是指针的结构中。