| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3127 人关注过本帖
标题:为何将VB结构体数组作为函数的参数时,总是不能通过编译?(代码见贴内)
只看楼主 加入收藏
shi781203
Rank: 2
来 自:广东省
等 级:论坛游民
帖 子:112
专家分:50
注 册:2011-3-18
结帖率:37.14%
收藏
已结贴  问题点数:10 回复次数:5 
为何将VB结构体数组作为函数的参数时,总是不能通过编译?(代码见贴内)
以下代码进行编译时总是弹出提示“类型不匹配,缺少数组或用户定义类型”
Private Type PaiType    '定义一个结构体为PaiType
    PaiZhi As Integer
    PaiHua As Integer
    Pai As Integer
End Type

Private Sub Form_Load()
    Dim Pais(52) As PaiType    '定义了52个结构数组元素用作牌信息
    Call XiPaiGuoCheng(Pais)    ’执行洗牌过程--实参为结构数组名
End Sub

Private Sub XiPaiGuoCheng(Pais_c() As PaiType)   '定义洗牌过程--形参为区别实参在结构数名后加了“_c”
……
……
……
End Sub
搜索更多相关主题的帖子: 结构体 信息 用户 元素 
2013-11-10 18:11
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4943
专家分:30067
注 册:2008-10-15
收藏
得分:4 
你注意看了错误提示吗?
我记得是 必须要 公用 的结构体才能当作参数调用。

授人于鱼,不如授人于渔
早已停用QQ了
2013-11-10 19:25
bczgvip
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:66
帖 子:1310
专家分:5312
注 册:2009-2-26
收藏
得分:4 
以上代码没问题。
公用的结构体才能被公用。
类里没法声明公用结构体,好吧,VB6而已。
公用的类函数里不能有私有结构体。
换了个输入法打字都慢了。
2013-11-10 20:02
shi781203
Rank: 2
来 自:广东省
等 级:论坛游民
帖 子:112
专家分:50
注 册:2011-3-18
收藏
得分:0 
以下是引用风吹过b在2013-11-10 19:25:37的发言:

你注意看了错误提示吗?
我记得是 必须要 公用 的结构体才能当作参数调用。

试过用Public将结构体公有化,但还是不行!

飞点燃费盐--历史上至有型的计算机病毒(能感染你是我的荣幸,也是你的光荣!)
2013-11-10 22:43
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4943
专家分:30067
注 册:2008-10-15
收藏
得分:0 
窗体代码:
Option Explicit
Private Sub Form_Load()
    Dim Pais(52) As PaiType    '定义了52个结构数组元素用作牌信息
    Call XiPaiGuoCheng(Pais)    '执行洗牌过程--实参为结构数组名
End Sub

-----------------------------
模块代码:
Option Explicit

Public Type PaiType    '定义一个结构体为PaiType
    PaiZhi As Integer
    PaiHua As Integer
    Pai As Integer
End Type

Public Sub XiPaiGuoCheng(Pais_c() As PaiType)   '定义洗牌过程--形参为区别实参在结构数名后加了“_c”
MsgBox "YES"
End Sub

-------------------
定义为全局的要放到模块文件里。不能在 窗体代码中定义为全局函数,那么是没用的。
窗体就是一个类,在窗体里定义的全局函数,就是 窗体这个类的对外接口过程函数。定义的全局变量,就是窗体的属性。

授人于鱼,不如授人于渔
早已停用QQ了
2013-11-11 08:45
vbvcr51
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:18
帖 子:364
专家分:1724
注 册:2013-11-3
收藏
得分:4 
放在标准模块里用public开头,然后在窗体里调用模块。自己多调试调试。
2013-11-14 18:27
快速回复:为何将VB结构体数组作为函数的参数时,总是不能通过编译?(代码见贴内 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012170 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved