用var这个类型来处理,先定义一个数组,给这个数组赋值后,再定义一个是Var类型的变量,把这个数组的值传给这个var类型的变量,在接收端也先定义一个var类型的变量,把这个值接收过来,再赋值给数组。

解决方案 »

  1.   

    是这样的。我在ocx控件里返回一个结构数组,如:
    long CTestocxCtrl::GetDeviceList(long numDevices, BSTR FAR* deviceList) 
    {
    DeviceInfo m_DeviceInfo[10];
    FT_FPSGetDeviceList(1,(DeviceInfo *)deviceList);
    return 0;
    }
    我如何在VB中调用此方法?
      

  2.   

    你是想在VB中传给此函数一个结构,然后在ocx控件里是填充这个个结构数组吧,我没看到返回的结构啊
      

  3.   

    补充,如果我这样:
     Private m_DeviceInfo As DeviceInfo
     Dim s As String
     Dim numList As Integer
     i = Testocx1.GetDeviceList(numList, s)后,
    能不能将s 保存到m_DeviceInfo中?或者有其它方法吗? 
      

  4.   

    瓜棚下,你说的对。因为VC里做OCX控件时参数不能传结构数组,所以我传了
    BSTR FAR* deviceList,如果用VC调用这个OCX是很方便的。只是VB中好像不大好像VC一样处理。看到我的补充了吗?
      

  5.   

    瓜棚下,你说的对。因为VC里做OCX控件时参数不能传结构数组,所以我传了
    BSTR FAR* deviceList,如果用VC调用这个OCX是很方便的。只是VB中好像不大好像VC一样处理。看到我的补充了吗?
      

  6.   

    按照DeviceInfo的格式,分析s,从s中提取信息,然后逐个赋值即可,这其实就是字符串的处理,告诉我DeviceInfo的每个元素,我来给你处理;我的email地址:[email protected]
      

  7.   

    那样不是太麻烦了吗?
    其实DeviceInfo很简单:
    typedef struct
    {
    int  DeviceID;
    char DeviceName[80];
    }DeviceInfo,*DeviceInfoPt;
    最好能一下子转!谢谢你,瓜棚下