activeX和VB之间传递大2进制对象,该用什么数据类型做接口?
我现在
VC里面用VARIANT ,VARIANT中使用SAFEARRAY
VB里面variant,
结果时实时错误13,数据类型不匹配,
这时我的部分代码//////////////VC
[id(4), helpstring("方法GetImage")] LONG GetImage(VARIANT imgBase64,LONG *base64Len);
void *pa;
::SafeArrayAccessData(imgBase64.parray,(void**)&pa);
Base64Encode((BYTE*)data,len,(LPSTR)pa,(int*)base64Len);
::SafeArrayUnaccessData(imgBase64.parray);
/////////////////VB调用
    Dim height As Long, width As Long, N As Long
    Dim re As Long
    Dim imgBase64Data() As Byte
    Dim imgBase64 As Variant
    
    re = lgCam1.GetImgSize(height, width)//这个也时activeX控件里面的函数,声明为[id(3), helpstring("方法GetImgSize")] LONG GetImgSize(LONG* height, LONG* width);调用正确    N = height * width * 2 * 3
    ReDim imgBase64Data(N) As Byte
    imgBase64 = imgBase64Data
    
    re = lgCam1.GetImage(imgBase64, N)//这里不正确,出现实时错误13,类型不匹配//////////////////////////////////////////////////////////
要我在activeX和VB中间传递大块2进制数据,2方分别该用什么数据类型做接口呢?