GetFunction()
Синтаксис
*Result = GetFunction(#Library , FunctionName$)
Описание
Проверяет, содержит ли указанная библиотека функцию с данным именем, и возвращает указатель на найденную функцию. Указанная библиотека должна быть ранее открыта с помощью функции OpenLibrary().
Параметры
#Library Номер для идентификации библиотеки содержащей функцию, наличие которой требуется проверить. Этот Номер должен совпадать с тем, что ранее был использован в функции OpenLibrary(), при открытии этой библиотеки. FunctionName$ Строка, содержащая имя искомой функции. Имя функции - чувствительно к регистру.
Возвращаемое значение
Возвращает адрес в памяти функции из библиотеки при успехе, если же библиотека не содержит функцию с этим именем - возвратом будет 0.
Комментарии
Функция может быть вызвана по её адресу используя прототипы. Функции CallFunctionFast() и CallCFunctionFast() также могут быть использованы для этого, но прототипы являются рекомендуемым методом, поскольку они более гибкие.
Для примера посмотрите раздел Прототипы .
Пример для Windows
Define Num = OpenLibrary(#PB_Any, "kernel32.dll") ; Открывает библиотеку kernel32.dll и запоминает сгенерированный Номер в переменную Num If GetFunction(Num, "WriteFile") ; проверка наличия функции 'WriteFile' Debug "Библиотека kernel32.dll действительно содержит функцию 'WriteFile'" EndIf If GetFunctionEntry(Num, 100) ; проверяет, есть ли в библиотеке, как минимум 100 функций... Debug "В таблице функций библиотеки kernel32.dll есть функция под Номером 100" Debug "Всего функций: " + CountLibraryFunctions(Num) EndIf If IsLibrary(Num) ; Проверка, открыта ли библиотека CloseLibrary(Num) ; Закрытие библиотеки EndIf
См. также
GetFunctionEntry(), CallFunctionFast(), CallCFunctionFast(), Прототипы
Поддерживаемые OS
Все