PureBasic
ExamineLibraryFunctions()
Синтаксис
Result = ExamineLibraryFunctions(#Library)
Описание
Создаёт список функций, содержащихся в указанной библиотеке, для последующего просмотра параметров функций. Указанная библиотека должна быть ранее открыта с помощью функции OpenLibrary().
Параметры
#Library Номер для идентификации исследуемой библиотеки. Этот Номер должен совпадать с тем, что ранее был использован в функции OpenLibrary(), при открытии этой библиотеки.
Возвращаемое значение
Возвращает не нулевое значение, если функции библиотеки могут быть исследованы, и возвращает ноль - если их просмотреть невозможно.
Комментарии
Если эта функция сработает успешно, программист сможет шаг за шагом просмотреть функции библиотеки с помощью команды NextLibraryFunction(). В ходе просмотра можно получить информацию о каждой функции, такую как имя и адрес, с помощью команд LibraryFunctionName() и LibraryFunctionAddress() соответственно.
Пример для 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
См. также
NextLibraryFunction(), LibraryFunctionAddress(), LibraryFunctionName()
Поддерживаемые OS
Windows, Linux