vb中有办法传递结构数组么?谢谢!
问题点数:10、回复次数:9Top
1 楼ch927(陈辉)回复于 2001-12-06 15:17:43 得分 0
用var这个类型来处理,先定义一个数组,给这个数组赋值后,再定义一个是Var类型的变量,把这个数组的值传给这个var类型的变量,在接收端也先定义一个var类型的变量,把这个值接收过来,再赋值给数组。Top
2 楼I_168_888(瓜棚下)回复于 2001-12-06 15:24:31 得分 0
当然可以,说说你的具体要求,我给你写代码Top
3 楼lailaimao(lailaimao)回复于 2001-12-06 15:29:13 得分 0
是这样的。我在ocx控件里返回一个结构数组,如:
long CTestocxCtrl::GetDeviceList(long numDevices, BSTR FAR* deviceList)
{
DeviceInfo m_DeviceInfo[10];
FT_FPSGetDeviceList(1,(DeviceInfo *)deviceList);
return 0;
}
我如何在VB中调用此方法?Top
4 楼I_168_888(瓜棚下)回复于 2001-12-06 15:51:57 得分 0
你是想在VB中传给此函数一个结构,然后在ocx控件里是填充这个个结构数组吧,我没看到返回的结构啊Top
5 楼lailaimao(lailaimao)回复于 2001-12-06 15:53:20 得分 0
补充,如果我这样:
Private m_DeviceInfo As DeviceInfo
Dim s As String
Dim numList As Integer
i = Testocx1.GetDeviceList(numList, s)后,
能不能将s 保存到m_DeviceInfo中?或者有其它方法吗? Top
6 楼lailaimao(lailaimao)回复于 2001-12-06 15:56:50 得分 0
瓜棚下,你说的对。因为VC里做OCX控件时参数不能传结构数组,所以我传了
BSTR FAR* deviceList,如果用VC调用这个OCX是很方便的。只是VB中好像不大好像VC一样处理。看到我的补充了吗?Top
7 楼lailaimao(lailaimao)回复于 2001-12-06 15:57:20 得分 0
瓜棚下,你说的对。因为VC里做OCX控件时参数不能传结构数组,所以我传了
BSTR FAR* deviceList,如果用VC调用这个OCX是很方便的。只是VB中好像不大好像VC一样处理。看到我的补充了吗?Top
8 楼I_168_888(瓜棚下)回复于 2001-12-06 16:08:50 得分 10
按照DeviceInfo的格式,分析s,从s中提取信息,然后逐个赋值即可,这其实就是字符串的处理,告诉我DeviceInfo的每个元素,我来给你处理;我的email地址:emailme@163.com
Top
9 楼lailaimao(lailaimao)回复于 2001-12-06 16:55:10 得分 0
那样不是太麻烦了吗?
其实DeviceInfo很简单:
typedef struct
{
int DeviceID;
char DeviceName[80];
}DeviceInfo,*DeviceInfoPt;
最好能一下子转!谢谢你,瓜棚下Top




