如何让自定义类型可以作为参数,在public过程之间自由传输?

Summer006 2005-10-20 02:12:22
vb这一限制真是让我痛苦万分。
要传一个自定义类型到公开过程里面,不是一个个数据分开传,就是将其作为全局变量。
真的就没有其他办法了吗? 为什么vb要进行这个限制呢?!!!

比如
public type aff
a as long
b as string
end type

public sub pp(byval gg as aff)
end sub
死活就是要报错。除非private。
...全文
216 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
boyzhang 2005-10-30
  • 打赏
  • 举报
回复
结构体就是一段内存,用copymemory拷贝到一个数组里,传过去

再用copymemory还原到结构体里,

可以做成一个类.
Summer006 2005-10-20
  • 打赏
  • 举报
回复
知道啦,类可以解决。但一旦这样的话。。。类就太多了。。。。。vb6又不支持对类进行分组管理。。罢了罢了。还是谢谢weiweiplay(虚幻)~~

不过 jacky_gaoying(碧海长吟) 兄说他可以通过,这个问题一定要研究一下。
麻烦jacky_gaoying(碧海长吟)贴出代码吧
weiweiplay 2005-10-20
  • 打赏
  • 举报
回复
写成类吧,不要钻牛角尖了
Summer006 2005-10-20
  • 打赏
  • 举报
回复
ctrl+f5 全编译通过?
jacky_gaoying 2005-10-20
  • 打赏
  • 举报
回复
在vb6中
Summer006 2005-10-20
  • 打赏
  • 举报
回复
to jacky_gaoying(碧海长吟:
不会把。你在form里面也行? 确定是public的过程?用自定义类型作为参数?真的ok?!你的调试环境是vb6?.net?

to songyaowu(不以分多而蹭之;不因分少而不答; www.vb99.com:
这样的大费周章,跟“把自定义类型拆开来分别传送,送过去后那边再组合”差不多了。
我的目的就是想简便些啊。
韧恒 2005-10-20
  • 打赏
  • 举报
回复
用过 CopyMemory 函数吗?向函数过程传递结构的地址,这样你在函数过程中参数说明声明成Long就行了,在过程内部再用CopyMemory复制该地址的内容就行了。看你也是两个三角,就不能写代码了,祝你成功!
jacky_gaoying 2005-10-20
  • 打赏
  • 举报
回复
form里面我也试过,也可以执行通过,class里就没试过了
Summer006 2005-10-20
  • 打赏
  • 举报
回复
to jacky_gaoying(碧海长吟) :
不是在模块里面,是在form里面,或者class里面,总之要到处都可以用。当参数传递。
jacky_gaoying 2005-10-20
  • 打赏
  • 举报
回复
楼主再仔细检查一下别的原因,我测试过,不加byval可以执行通过,加了byval就会报错,把你报的错贴出来看,大家再帮你分析下
weiweiplay 2005-10-20
  • 打赏
  • 举报
回复
定义成类吧
Summer006 2005-10-20
  • 打赏
  • 举报
回复
不是在模块里面,是在form里面,或者class里面,总之要到处都可以用。当参数传递。
Summer006 2005-10-20
  • 打赏
  • 举报
回复
经测试证实:不行的。
要不要byval都报错
weiweiplay 2005-10-20
  • 打赏
  • 举报
回复
Public Type aff
a As Long
b As String
End Type

Public Sub pp(gg As aff) '不要byval
Dim i As Long
i = 1
End Sub

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧