PureBasic

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

Все

<- ExamineLibraryFunctions() - Оглавление Library - GetFunctionEntry()->