首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

vb类模块中无法将bas中的全局变量作为函数参数传递?解决思路

2012-01-12 
vb类模块中无法将bas中的全局变量作为函数参数传递?我在bas中定义一个全局Type变量A。在cls中定义一个函数B

vb类模块中无法将bas中的全局变量作为函数参数传递?
我在bas中定义一个全局Type变量A。
在cls中定义一个函数B(byval ss as A),编译时,提示无法使用A作为参数类型。

这是怎么回事?

[解决办法]
据我所知,通常情况下结构类型是不可以传值的。应该是你的参数传递方式错误。改为ByRef
[解决办法]
公共模块中的公共类型,才可以作为参数传递.

不然非公共模块中的公共类型并不能向外公开,就无法得知其结构,大小等信息,于是就无法传递了.

你新建一个DLL工程,将你需要传递的类型放在模块里PUBLIC,然后在工程里引用这个DLL,就可以使用这个类型了.
[解决办法]
type定义的数据类型,不能做为public类型的函数或者过程的参数及返回值(不管是Form中,类中,控件中,bas模块中,都不行)

解决方法
1,如果调用不超出同一个模块,改用private声明函数或过程
2,将type定义的数据类型改成一个类
[解决办法]

探讨
将type定义的数据类型改成一个类?
怎么弄?

将type定义到一个类中吗?

[解决办法]
探讨

但是,在cls文件中,却可以直接使用变量A,但是无法使用A作为cls中函数的参数类型。

热点排行