Dlsym: различия между версиями
(http://tzukune.info/#69547 nolvadex clomid and clenbuterol - how do i use nolvadex as a pct? http://www.buy-tadalafil-online.org/#15254 buy cialis 5mg - buy cialis) | Synergy (обсуждение | вклад) | ||
(не показано 20 промежуточных версий 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]]. | ||
+ | |||
+ | == Пример == | ||
+ | <pre> | ||
+ | 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); | ||
+ | </pre> | ||
+ | |||
+ | == См. также == | ||
+ | [[dlopen]] | ||
+ | |||
+ | [[dlclose]] | ||
+ | |||
+ | [[dlerror]] | ||
+ | |||
+ | |||
+ | [[Категория:Функции ElfPack2]] |
Текущая версия на 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);