【发布时间】:2009-07-22 21:14:07
【问题描述】:
在 VB6 中,我试图将后期绑定的对象传递给另一个表单。
frmMain.vb
Dim x
Set x = CreateObject("MyOwn.Object")
Dim f as frmDialog
Set f = New frmDialog
f.SetMyOwnObject x
frmDialog
Dim y
Public Sub SetMyOwnObject(ByVal paramX As Variant)
Set y = paramX
End Sub
y 的内容是一个字符串,其中包含后期绑定对象的类型名称“MyOwn.Object”。 ByVal 和 ByRef 没有区别。有什么线索吗?记不住。
【问题讨论】:
-
我没有看到此代码有任何问题。你期望它是什么?
-
你是如何确定
y的内容确实是一个字符串?也许它实际上是对象,当你将它传递给一些需要字符串的函数或语句时,它被转换为字符串? -
我猜,您只是将鼠标悬停在“Y”上并看到实例的名称。尝试将 Y 的值放在监视窗口中,以查看它确实是您实例化的对象。您还应该能够在监视窗口中看到 Y 的属性。 Byval/ByRef 本身不会改变任何东西(在你的情况下)。
-
我使用了 VarType(y)。对于 vbString,结果为 8。对象应该是 9。
-
使用立即窗口中的 Print y 来查找 y 的内容。
标签: vb6 parameters late-binding