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