CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  基础类

请问如何在VB中用结构体数组作参数传递(我说的是结构体数组),急

楼主alien120(alien)2003-05-03 09:34:11 在 VB / 基础类 提问

比如有一个结构体:  
  type   hb  
        name   as   string  
        sex   as   string  
  end   ype  
   
  能不能给出一个简单的例子,谢谢!  
  解决者给高分! 问题点数:0、回复次数:11Top

1 楼ChenChen88(虾子脑壳)回复于 2003-05-03 10:24:12 得分 0

dim   kk()   as   hb  
  调用:    
  TestSub   kk  
   
  Sub   TestSub(varTemp   as   Variant)  
   
  ...  
   
  End   SubTop

2 楼qianhai(东东)回复于 2003-05-03 14:55:21 得分 0

Function   Testtype(aryTemp()   as   hb)  
  ------  
  End   FunctionTop

3 楼alien120(alien)回复于 2003-05-04 19:19:43 得分 0

dim   kk(0   to   9)   as   hb  
   
   
  比如,我要用Testtype(aryTemp()   as   hb)显示出kk中的内容,怎么办?Top

4 楼alien120(alien)回复于 2003-05-04 19:57:22 得分 0

qianhai(东东)   ,你会VB吗,用户自定义类型是不能作为参数的Top

5 楼rainstormmaster(暴风雨 v2.0)回复于 2003-05-04 21:00:18 得分 0

给你些参考:  
  http://www.jsj92.com/cxg/VB/VB/db/db9.html  
   
  比较麻烦Top

6 楼qbilbo(风之兄)回复于 2003-05-04 21:30:29 得分 0

虽然VB中自定类型不能作为参数?  
   
  不信你新建一个窗体,在里面放入下面的代码试试。  
   
  Option   Explicit  
   
  Private   Type   MyType  
            A   As   String  
            B   As   Integer  
  End   Type  
   
  Private   Sub   Test(mType()   As   MyType)  
  Dim   i   As   Integer  
   
  For   i   =   0   To   9  
  ReDim   Preserve   mType(i)  
  mType(i).A   =   Trim(Str(i))  
  mType(i).B   =   i  
   
  Print   mType(i).A  
  Print   Trim(Str(mType(i).B   +   1))  
  Next  
  End   Sub  
   
  Private   Sub   Form_Load()  
  Dim   m_type()   As   MyType  
   
  Me.AutoRedraw   =   True  
   
  Test   m_type()  
  End   Sub  
   
  只有在VB的类模块中不能将自定义参数作为公共过程的参数调用。Top

7 楼bdhh(Silent)回复于 2003-05-05 00:16:31 得分 0

其实很麻烦  
  一种方法是你将type得定义写到dll里  
  另一种方法是将当前工程类型改为ActiveX   Exe,然后添加一个类模块,在其中进行定义,并将类的Instancing设置为GlobalMultiUseTop

8 楼bdhh(Silent)回复于 2003-05-05 00:17:28 得分 0

与其如此还不如将hb定义成一个类呢Top

9 楼lazycat818(lazycat818)回复于 2003-05-05 02:20:46 得分 0

谁说UDT(用户自定义类型)不能做参数传递?  
   
  1。可以将函数放到公共模块中。  
  2。在类模块或窗体模块中用Friend代替Public,private则本来就可以。Top

10 楼rainstormmaster(暴风雨 v2.0)回复于 2003-05-05 08:52:16 得分 0

'窗体部分,添加一个command,一个listbox  
  Option   Explicit  
   
  Private   Sub   Command1_Click()  
  Dim   kk(9)   As   hb,   i   As   Integer  
  For   i   =   0   To   9  
    kk(i).name   =   ChrW(Val("&H"   &   Str(i   +   65)))  
    kk(i).sex   =   Mid("男女",   (i   Mod   2)   +   1,   1)  
  Next  
  gettype   kk,   List1  
  End   Sub  
   
  '模块部分  
  Option   Explicit  
   
  Public   Type   hb  
      name   As   String  
      sex   As   String  
  End   Type  
  Public   Sub   gettype(mytypevarray()   As   hb,   listobject   As   ListBox)  
  Dim   i   As   Integer  
  For   i   =   0   To   UBound(mytypevarray)  
    listobject.AddItem   mytypevarray(i).name  
    listobject.AddItem   mytypevarray(i).sex  
  Next  
  End   Sub  
   
  Top

11 楼rainstormmaster(暴风雨 v2.0)回复于 2003-05-05 08:53:44 得分 0

但是不能对UDT数组进行后期绑定。Top

相关问题

  • vb 调用vc写的dll时,怎样传递数组参数
  • vb 调用vc写的dll时,怎样传递数组参数
  • openwithparm()能否传递数组参数
  • 如何传递多维数组参数?
  • 传递数组参数的错误
  • 关于数组作为参数传递
  • 数组作为参数传递?
  • 怎样用数组传递参数???!!!!!?????????
  • vb中数组的传递!
  • VB高手请进,关于ActiveX Dll部件(多维数组)参数传递问题!!!难。

关键词

  • vb
  • 模块
  • 结构
  • 参数
  • hb
  • mytypevarray
  • mtype
  • integerfor
  • kk
  • 结构体

得分解答快速导航

  • 帖主:alien120

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo