Dlsym
Объявление
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);