161
правкаИзменения
Dlopen
,Создал статью
== Объявление ==
'''DLHANDLE dlopen( const WCHAR * file, int mode );</tt>
== Описание ==
Функция [[ElfPack2]], загружает динамическую библиотеку (*.so)
В эльфе, требующем динамическую библиотеку как на этапе загрузки, так и во время выполнения (dlopen), хранится ссылка на каждую связанную с ним библиотеку. Когда количество эльфов, требующее определённую библиотеку становится равным нулю, она выгружается из памяти.
== Параметры ==
#'''const WCHAR * file
#:Либо полный путь к библиотеке, либо просто имя библиотеки.
#:В последнем случае, библиотека будет искаться в стандартных путях для библиотек (прописаны в elfpack.cfg) и в папке с эльфом.
#:Если библиотека уже была загружена ранее, функция просто вернёт DLHANDLE на неё.
#'''int mode
#:Параметры загрузки библиотеки.
#:На данный момент поддерживаются только RTLD_NOW|RTLD_LOCAL = 0 - библиотека загружается немедленно и доступ к её функциям можно получить только через [[dlsym]].
== Результат ==
#'''DLHANDLE
#:Идентификатор (хендлер) библиотеки, который используется в функциях [[dlsym]] и [[dlclose]].
#:В случае неудачи возвращается 0, и код ошибки можно узнать с помощью функции [[dlerror]].
== Пример ==
<pre>
DLHANDLE solib;
// Загружаем библиотеку из папки с эльфом
solib = dlopen( L"library.so", 0 );
if(solib == 0)
{
cprintf("library.so not found, error = %d\n", dlerror());
}
</pre>
== См. также ==
[[dlsym]]
[[dlclose]]
[[dlerror]]
[[Категория:Функции ElfPack2]]
'''DLHANDLE dlopen( const WCHAR * file, int mode );</tt>
== Описание ==
Функция [[ElfPack2]], загружает динамическую библиотеку (*.so)
В эльфе, требующем динамическую библиотеку как на этапе загрузки, так и во время выполнения (dlopen), хранится ссылка на каждую связанную с ним библиотеку. Когда количество эльфов, требующее определённую библиотеку становится равным нулю, она выгружается из памяти.
== Параметры ==
#'''const WCHAR * file
#:Либо полный путь к библиотеке, либо просто имя библиотеки.
#:В последнем случае, библиотека будет искаться в стандартных путях для библиотек (прописаны в elfpack.cfg) и в папке с эльфом.
#:Если библиотека уже была загружена ранее, функция просто вернёт DLHANDLE на неё.
#'''int mode
#:Параметры загрузки библиотеки.
#:На данный момент поддерживаются только RTLD_NOW|RTLD_LOCAL = 0 - библиотека загружается немедленно и доступ к её функциям можно получить только через [[dlsym]].
== Результат ==
#'''DLHANDLE
#:Идентификатор (хендлер) библиотеки, который используется в функциях [[dlsym]] и [[dlclose]].
#:В случае неудачи возвращается 0, и код ошибки можно узнать с помощью функции [[dlerror]].
== Пример ==
<pre>
DLHANDLE solib;
// Загружаем библиотеку из папки с эльфом
solib = dlopen( L"library.so", 0 );
if(solib == 0)
{
cprintf("library.so not found, error = %d\n", dlerror());
}
</pre>
== См. также ==
[[dlsym]]
[[dlclose]]
[[dlerror]]
[[Категория:Функции ElfPack2]]