我已经使用 VB6 多年了,但我遇到了一些相当奇怪的事情,我自己无法确认这个结果。所以我想知道以下代码的输出是否会是
7
7
或者
7
6
这是代码:
Option Explicit
Private Sub cmdOk_Click()
Dim V As Integer
V = 6
Call AddV(V)
Print V
End Sub
Sub AddV(ByRef P As Integer)
P = P + 1
Print P
End Sub
在我的系统(Windows XP + VB6)上,这可以按预期工作。所以我得到了第一个输出。但是,我在 Windows 7 + VB6 上看到过相同的程序,并且输出不一样。
有人可以解释为什么会这样吗?但是,同样的事情在 VB 2008 + Windows 7 上运行得很好。我认为按值调用和按引用调用是任何语言/操作系统中的标准参数传递技术。
谢谢!
编辑: cmdOK 是一个命令按钮。