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

Изменения

Dlopen

558 байт добавлено, 04:52, 8 апреля 2019
Нет описания правки
<metadesc>Функция ElfPack2, загружает динамическую библиотеку (*.so) во время выполнения.</metadesc>
 
== Объявление ==
'''<tt>DLHANDLE dlopen( const WCHAR * file, int mode );</tt>
== Описание ==
Функция [[ElfPack2]], загружает динамическую библиотеку (*.so)во время выполнения. Обычно требуемая библиотека указывается еще на этапе линковки эльфа и она автоматически загружается вместе с эльфом. Это не всегда удобно, т.к. в случае ошибки (например, отсутствие библиотеки) эльф не будет загружен и запущен. Загрузка во время выполнения дает больший контроль над этим процессом - можно загружать библиотеку только при необходимости и можно обрабатывать ошибки.
В эльфеКак минус - обращаться к объектам библиотеки напрямую нельзя, требующем динамическую библиотеку как на этапе загрузки, так и во время выполнения (dlopen), хранится ссылка на каждую связанную с ним библиотеку. Когда количество эльфов, требующее определённую библиотеку становится равным нулю, она выгружается из памятитолько через [[dlsym]].
== Параметры ==
#:Либо полный путь к библиотеке, либо просто имя библиотеки.
#:В последнем случае, библиотека будет искаться в стандартных путях для библиотек (прописаны в elfpack.cfg) и в папке с эльфом.
#:Если библиотека уже была загружена ранее, функция просто вернёт DLHANDLE на неё''Замечание.'' В папке эльфа ищется только после завершения вызова __start().
#'''int mode
#:Параметры загрузки библиотеки.
214
правок