Открыть главное меню

Изменения

Dlsym

1547 байт добавлено, 14:41, 28 ноября 2009
Создал статью
== Объявление ==
'''<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]]
161
правка