Dlsym: различия между версиями
NoPH8 (обсуждение | вклад) м (Снята защита с «Dlsym») | Synergy (обсуждение | вклад) | ||
Строка 1: | Строка 1: | ||
+ | <metadesc>Функция ElfPack2, ищет в загруженной динамической библиотеке функцию или глобальную переменную (символ).</metadesc> | ||
+ | |||
== Объявление == | == Объявление == | ||
'''<tt>void * dlsym( DLHANDLE handle, const char * name );</tt> | '''<tt>void * dlsym( DLHANDLE handle, const char * name );</tt> |
Текущая версия на 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);