2012-10-29 61 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

相关问题