PureBasic

LibraryFunctionAddress()

Синтаксис

*Result = LibraryFunctionAddress()

Описание


Возвращает адрес текущей функции в библиотеке, просматриваемой с помощью функций ExamineLibraryFunctions() и NextLibraryFunction().

Параметры

Ничего.

Возвращаемое значение

Возвращает адрес в памяти текущей функции из библиотеки, который можно использовать как параметр для функций CallFunctionFast() или CallCFunctionFast().

Комментарии

Функция может быть вызвана по её адресу используя прототипы. Функции CallFunctionFast() и CallCFunctionFast() также могут быть использованы для этого, но прототипы являются рекомендуемым методом, поскольку они более гибкие.

Пример для Windows

Define Num = OpenLibrary(#PB_Any, "user32.dll") ; Открывает библиотеку user32.dll и запоминает сгенерированный Номер в переменную Num
If ExamineLibraryFunctions(Num)                 ; Начинает просмотр содержимого библиотеки
  While NextLibraryFunction()                   ; Осуществляет цикл, с пошаговым просмотром каждой функции библиотеки
    a$=Hex(LibraryFunctionAddress())
    b$=LibraryFunctionName()
    Debug   "HEX Адрес: ( " + a$ + " ) -- имя функции:  " + b$ ; Печать адресов и имён всех функций библиотеки  
  Wend                                                         ; конец цикла
EndIf 
Debug "Всего функций: " + CountLibraryFunctions(Num) ; Выводит общее количество функций библиотеки 
If IsLibrary(Num)                                    ; Проверка, открыта ли библиотека 
  CloseLibrary(Num)                                  ; Закрытие библиотеки
EndIf

См. также

ExamineLibraryFunctions(), NextLibraryFunction(), LibraryFunctionName(), CallFunctionFast(), CallCFunctionFast()

Поддерживаемые OS

Windows, Linux

<- IsLibrary() - Оглавление Library - LibraryFunctionName()->