Там какой-либо путь состоит в том, чтобы проверить, чтобы видеть, определяется ли функция VBScript?

Не существует такой вещи, как интерпретируемый язык. Любой язык может быть реализован интерпретатором или компилятором. В наши дни большинство языков имеют реализации, использующие компилятор.

Тем не менее, интерпретаторы обычно работают медленнее, потому что им нужно обрабатывать язык или что-то довольно близкое к нему во время выполнения и переводить его в машинные инструкции. Компилятор выполняет этот перевод для машинных инструкций только один раз, после чего они выполняются напрямую.

14
задан AnonJr 22 October 2009 в 03:18
поделиться

2 ответа

Это немного хакерский способ сделать это, поскольку он полагается на установку «При ошибке возобновить следующий», но вы можете сделать что-то вроде этого:

On Error Resume Next
Dim objRef1, objRef2
Set objRef1 = GetRef("DoStuff1")
If objRef1 Is Nothing Then
    Call objRef1
Else
    MsgBox "DoStuff1 is not defined!"
End If

Set objRef2 = GetRef("DoStuff2")
If objRef2 Is Nothing Then
    MsgBox "DoStuff2 is not defined!"
Else
    Call objRef2
End If

Sub DoStuff1
    MsgBox "DoStuff1!"
End Sub

Вызов GetRef вызовет исключение если подпрограмма или функция, на которую вы пытаетесь получить указатель, не существует (как в случае с DoStuff2). Затем вы можете проверить, правильно ли задана ссылка.

6
ответ дан 1 December 2019 в 12:53
поделиться

Вот мое решение, которое работает по тому же принципу, но хакерство довольно самодостаточно:

Function FunctionExists( func_name )
    FunctionExists = False 

    On Error Resume Next

    Dim f : Set f = GetRef(func_name)

    If Err.number = 0 Then
        FunctionExists = True
    End If  
    On Error GoTo 0

End Function 
15
ответ дан 1 December 2019 в 12:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: