[VB6 ] 宣告 我還是沒搞清楚 囧
話說,
最近把一年多前寫的程式拿出來翻修,
結果不知道怎麼搞的,
以前沒問題的地方出了問題了@@"
就是執行到某的FUNCTION的時候,會出現ByRef引數型態不符。
於是我重新查了一下變數型態,
發現奇怪的問題@@"
我原本在 一般區 宣告 這裡宣告的變數,
用「區域變數監視視窗」來看,都變成Variant/XXXX這樣==
***
補:剛剛發現,我變數會變成Variant/XXXX的,都是在宣告非最末端的變數
例如下面例子中,我這樣宣告的時候,
用「區域變數監視視窗」來看,AnotherBianSu, criFix是Variant/XXXX
而SomethingElse是Single....
但是我有加強制宣告,為什麼Compile時會讓我過?==
應該說,明明就有宣告,而且也讓我過了,為什麼變數還是Viriant/XXXX...?
不知道是我這次修改程式的時候動到什麼東西了還是怎樣~
一年前寫的時候沒這問題@@"
--
我的例子是這樣:
我在一般宣告區:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Option Explicit
Private AnotherBianSu, criFix, SomethingElse as single
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
然後寫了個Function:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Function Dice(Dice_type as string, option Fix_cri as single=0) as single
Select case Dice_type
case "a"
Dice=5*Fix_cri+1 執行後這裡會被標起來說ByRef引數型態不符
'這時候監看變數的結果Fix_cri是Variant/Double,可能是錯在這。我引的是SINGLE
case "b"
Dice=10*Fix_cri+2
End select
End Function
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
然後有個程序要呼叫他:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Private Sub Command1_Click()
Dim X as single
If !%$@#^ then
criFix = -0.05
Else
criFix = 0
End If
X = Dice("a", criFix) '第一個引數A 或 B都一樣
End Sub
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
--
與其去懊悔做不到的事,
倒不如去做能做的事。
就算它和結果無關,
還是能夠往前邁進。
http://www.wretch.cc/blog/AlphaWing/24383501
From xxxHoLic vol.9
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 124.9.136.123
推
12/22 21:14, , 1F
12/22 21:14, 1F
→
12/22 21:23, , 2F
12/22 21:23, 2F
→
12/22 21:23, , 3F
12/22 21:23, 3F
→
12/22 21:25, , 4F
12/22 21:25, 4F
→
12/23 16:57, , 5F
12/23 16:57, 5F
→
12/23 16:58, , 6F
12/23 16:58, 6F
→
01/17 10:37, , 7F
01/17 10:37, 7F