2012-10-29 128 views

回答

3

好像例如這應該工作:

Dim a 
a = "Call b()" 
Eval(a) 

Sub b 
    ' Do stuff 
End Sub 
+0

非常感謝您的幫助! – Teiv

+4

@ user433531請看Ekkehard.Horner的答案,'GetRef'是正確(並且安全!)的方式。 'Eval'不安全,使用全局作用域,速度很慢,你不能輕易地在你的函數中傳遞參數。而由GetRef創建的函數指針可以作爲一個對象傳遞,這是一個巨大的職業。 – AutomatedChaos

11

正確的答案是:使用GetRef(),如:

Function F(p) 
    F = p + p 
End Function 

Dim FP : Set FP = GetRef("F") 

WScript.Echo FP("a") 
WScript.Echo FP(123) 

輸出:

aa 
246 
-2
Dim x 

Sub b 

print "xxx"' Do stuff 
End Sub 

x = "call b()" 

Execute(eval("x")) 
+1

VBScript中沒有打印;任務是通過其名稱調用一個函數。 –

+2

您能詳細解釋一下您提供的解決方案嗎? – abarisone

相關問題