有关公有函数返回用户自定义数据类型的问题

GuiltyGear 2004-06-17 11:09:50
如何在一个公有函数返回一个用户自定义的数据类型,比如说是一个结构体

如下两个模块中:

'module1

Type DSTRT
m_Val As Long
End Type

'module2

Public Function fTest() As DSTRT
fTest.m_Val=1000
End Function


IDE弹出如下错误信息:

只有在公共对象模块中定义的公共用户定义类型可以做为参数、类模块的公共过程返回类型、公共用户定义类型的字段使用。

还请各位高手赐教!!先谢过了~~~
...全文
184 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
BlueBeer 2004-06-18
  • 打赏
  • 举报
回复
module1中type前面加上public
GuiltyGear 2004-06-18
  • 打赏
  • 举报
回复
…………汗,定义 type 默认是global

也许是我没有说清楚:
如何在类模块的公共成员函数里面返回公共用户定义类型
ryuginka 2004-06-18
  • 打赏
  • 举报
回复
up
horsefly 2004-06-18
  • 打赏
  • 举报
回复
默认是private类型的,请注明public访问修饰符.
函数的实现参照楼上的(这是标准写法)
landongfang 2004-06-18
  • 打赏
  • 举报
回复
'module1

Type DSTRT
m_Val As Long
End Type

'module2

Public Function fTest() As DSTRT
dim fT As DSTRT
fT.m_val=1000
fTest=fT
End Function
GuiltyGear 2004-06-18
  • 打赏
  • 举报
回复
多些楼上的高手~~~使用友元函数就可以了

不过这是为什么呢?能不能说明一下他们之间的语义区别??谢谢了~~
还想懒够 2004-06-18
  • 打赏
  • 举报
回复
把Public 改为Friend
GuiltyGear 2004-06-18
  • 打赏
  • 举报
回复
难道类模块的公共成员函数不能返回(或作为参数)用户自定义的公共数据类型??(除了枚举)
horsefly 2004-06-18
  • 打赏
  • 举报
回复
我刚才试了一下,只有把你的函数也放到bas中就可以了.
GuiltyGear 2004-06-18
  • 打赏
  • 举报
回复
我说的是类模块~~~ 不是在模块里
horsefly 2004-06-18
  • 打赏
  • 举报
回复
这下糗大了:(
northwolves 2004-06-18
  • 打赏
  • 举报
回复
bas:

Public Type DSTRT
a As Long
b As Date
End Type

Public Function fTest() As DSTRT
fTest.a = 1000
fTest.b = Date
End Function

form1:

Private Sub Command1_Click()
MsgBox fTest.a & vbCrLf & fTest.b
End Sub
GuiltyGear 2004-06-18
  • 打赏
  • 举报
回复
恕我无知~~

怎么定义 公共对象模块 呢???
GuiltyGear 2004-06-18
  • 打赏
  • 举报
回复
作为参数传递的话仍然会出现这样的情况啊

private class module ??? 私有类模块??

到底要如何定义,才能让类模块里的公共成员函数返回用户自定义类型????

大虾们,给各明确的解决方案吧~~
lyllxfly 2004-06-18
  • 打赏
  • 举报
回复
不能在Private Class Module中使用!!!
NuclearG 2004-06-18
  • 打赏
  • 举报
回复
如何在类模块的公共成员函数里面返回公共用户定义类型
===================================
很标准的操作啊,应该不会有错误的。你的UDT应该是不小心设成了Private了吧
NuclearG 2004-06-18
  • 打赏
  • 举报
回复
你还是用function f1(BYREF Data as Stru)吧 我这边好像都是这么干的
GuiltyGear 2004-06-18
  • 打赏
  • 举报
回复
不好意思,没有标明白,module2 是 class module 类模块,

……问题还没有解决啊~~~

7,763

社区成员

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

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