Dlsym: различия между версиями
(http://lifeofpis.com/#75709 lamisil effect - buy lamisil http://www.corasyndicate.com/#59342 buy phentermine diet pills - buy phentermine no prescription) | Synergy (обсуждение | вклад) | ||
(не показаны 34 промежуточные версии 5 участников) | |||
Строка 1: | Строка 1: | ||
− | + | <metadesc>Функция ElfPack2, ищет в загруженной динамической библиотеке функцию или глобальную переменную (символ).</metadesc> | |
− | + | == Объявление == | |
+ | '''<tt>void * dlsym( DLHANDLE handle, const char * name );</tt> | ||
− | + | == Описание == | |
+ | Функция [[ElfPack2]], ищет в загруженной динамической библиотеке функцию или глобальную переменную (символ). | ||
− | + | Это имя должно быть в списке экспортируемых имён библиотеки. | |
+ | |||
+ | == Параметры == | ||
+ | #'''DLHANDLE handle | ||
+ | #:Хендлер на загруженную библиотеку, полученный из функции [[dlopen]] | ||
+ | #'''const char * name | ||
+ | #:Имя функции или глобальной переменной, которую нужно найти в библиотеке | ||
+ | |||
+ | == Результат == | ||
+ | #'''void* | ||
+ | #:Указатель на найденный символ, либо NULL в случае ошибки. | ||
+ | #:Код ошибки можно узнать с помощью функции [[dlerror]]. | ||
== Пример == | == Пример == |
Текущая версия на 04:52, 8 апреля 2019
Объявление
void * dlsym( DLHANDLE handle, const char * name );
Описание
Функция ElfPack2, ищет в загруженной динамической библиотеке функцию или глобальную переменную (символ).
Это имя должно быть в списке экспортируемых имён библиотеки.
Параметры
- DLHANDLE handle
- Хендлер на загруженную библиотеку, полученный из функции dlopen
- const char * name
- Имя функции или глобальной переменной, которую нужно найти в библиотеке
Результат
- void*
- Указатель на найденный символ, либо NULL в случае ошибки.
- Код ошибки можно узнать с помощью функции dlerror.
Пример
DLHANDLE solib; UINT32 *sovalue; // Загружаем библиотеку из папки с эльфом solib = dlopen( L"library.so", 0 ); if(solib == 0) { cprintf("library.so not found, error = %d\n", dlerror()); return; } // Ищем символ sovalue = dlsym(solib, "gValue"); if(sovalue == NULL) { cprintf("gValue not found in library.so, error = %d\n", dlerror()); return; } cprintf("gValue = %d\n", *sovalue);