Active DLL中如何传递"用户自定义类型",高人Help Me.

siyunying 2002-10-28 11:50:34
由于我要向一个类中传递很多参数,这些参数可以分成几组.
如果参数一个一个的传递,显得程序有一些凌乱。
我就想到WIN32 API中的参数经常是一个"结构",也就是VB
所说的"用户自定义类型",只要把结构变量的值赋好就可以了。
这样让别人使用这个类时,就很方便,我也很容易写这个类
的使用说明。
下面是我想完成这个功能而写的类和测试工程。愿大家给出解决的方法。
'Class1.cls
Option Explicit
Private Type uS
cf(2, 4) As Double
intFlag As Integer
strname As String
End Type
Private usAA As uS
Public Property Let XS(ByRef s As Variant)
Dim i As Integer, j As Integer
For i = 0 To 2
For j = 0 To 4
usAA.cf(i, j) = s.cf(i, j)
Next j
Next i
usAA.intFlag = s.intFlag
usAA.strname = s.strname
End Property
Public Function funPrint()
Dim i As Integer, j As Integer
For i = 0 To 2
For j = 0 To 4
Debug.Print usAA.cf(i, j)
Next j
Next i
Debug.Print usAA.intFlag
Debug.Print usAA.strname
End Function

'测试工程
'module1.bas
Option Explicit
Public Type uS
cf(2, 4) As Double
intFlag As Integer
strname As String
End Type
Public usAA As uS

'form1.frm
Option Explicit

Dim clstest As New Class1
Private Sub Command1_Click()
usAA.cf(0, 0) = 1
usAA.intFlag = 5
usAA.strname = "OK"
clstest.XS (usAA)
clstest.funPrint
End Sub


...全文
77 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
holydiablo 2002-10-30
  • 打赏
  • 举报
回复
的确也是,我试了n遍,传不了type
siyunying 2002-10-30
  • 打赏
  • 举报
回复
up
daviddivad 2002-10-29
  • 打赏
  • 举报
回复
把你要传的数据组织成一个类,你只需传递这个类就行了。当然这个类也是可以输出的公共类。
zyl910 2002-10-29
  • 打赏
  • 举报
回复
Type是不行的
将那些属性定义到类模块中
再传递这个类
palmkey 2002-10-28
  • 打赏
  • 举报
回复
Public Property Let XS(ByRef s As Us)
siyunying 2002-10-28
  • 打赏
  • 举报
回复
To palmkey
一看你就是想当然。没有实际写过这种类型的代码。
这样编译都通不过。

7,763

社区成员

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

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