vb调用VC的DLL中结构体参数传递问题,搜遍百度,GOOGLE也没有找到答案,请高手赐教!
VB调用VC的DLL中,有一参数为RECT,
RECT在VC里为结构体,其定义为:
typedef struct tagRECT {
LONG left;
LONG top;
LONG right;
LONG bottom;
} RECT;
在VB调用时,需要定义与RECT相对应的类型,定义为:
Public Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
在VB里的调用声明:
Public Declare Function codeBar Lib "CodeBar.dll" Alias "_codeBar@36" (ByVal pBitInfoHead As Long, ret As RECT, ByVal gray As Long, ByVal EXT As Long, ByVal way As Long, ByVal barType As Long) As Long
在VB里调用VC的DLL:
dim ret as RECT
dim ImagePtr as LONG '此变量为指针,用二进制表示地址
dim lTag as LONG '此变量为指针,用二进制表示地址,返回值也是个指针
lTag = codeBar(ImagePtr, ret, 150, m_39, 15, 1)
调用时出现约定错误,错误代码为49