我已經使用VB6多年了,但我碰到了一些相當奇怪的事情,我無法自己確認這個結果。所以我想知道,如果下面的代碼的輸出將是參數傳遞ByRef與VB6 + Windows 7
或
下面的代碼:
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上,同樣的事情也很順利。我認爲通過值和call-by-reference是任何語言/操作系統的標準參數傳遞技術。
謝謝!
編輯:cmdOK是一個命令按鈕。
我在VB6 + XP和VB6 + Win7(相同的exe)上得到了相同的結果(7 7)。 按照漢斯的描述,如果我使用Call關鍵字去除它,那麼我在兩個操作系統中都會看到(7 6)的預期結果。 – MarkL