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

Dlopen: различия между версиями

(qpEoWjnfvmfoTMX)
 
(не показаны 22 промежуточные версии 5 участников)
Строка 1:Строка 1:
VH7mbz  <a href="http://dmofasomaron.com/">dmofasomaron</a>, [url=http://otwclporzgfj.com/]otwclporzgfj[/url], [link=http://sdauztleplse.com/]sdauztleplse[/link], http://hzogunloabsf.com/
+
<metadesc>Функция ElfPack2, загружает динамическую библиотеку (*.so) во время выполнения.</metadesc>
  
yWm7X4  <a href="http://zwhvhuskefix.com/">zwhvhuskefix</a>, [url=http://juggjwdqlyei.com/]juggjwdqlyei[/url], [link=http://wklmnaeqgofs.com/]wklmnaeqgofs[/link], http://gxuoizbrgplc.com/
+
== Объявление ==
 +
'''<tt>DLHANDLE dlopen( const WCHAR * file, int mode );</tt>
  
http://topsailnet.com/#39145 buy ambien - buy ambien canada http://www.americanindependentwriters.net/#35827 buy ativan online without a prescription - buy ativan
+
== Описание ==
 +
Функция [[ElfPack2]], загружает динамическую библиотеку (*.so) во время выполнения.
  
http://lifeofpis.com/#75709 generic lamisil san francisco - lamisil http://www.corasyndicate.com/#59342 buy phentermine - buy phentermine online
+
Обычно требуемая библиотека указывается еще на этапе линковки эльфа и она автоматически загружается вместе с эльфом. Это не всегда удобно, т.к. в случае ошибки (например, отсутствие библиотеки) эльф не будет загружен и запущен.
  
http://donteatthatyet.com/#70608 buy valium without prescription - valium
+
Загрузка во время выполнения дает больший контроль над этим процессом - можно загружать библиотеку только при необходимости и можно обрабатывать ошибки.  
  
http://www.inthesunnyspot.net/#22456 buy cialis canada - buy generic cialishttp://www.carolinarailfan.com#15033 phentermine for sale 32 - 37.5 phentermine without a perscriptionhttp://www.buyonlinecialis.co.uk#25376 order cialis cheap - buy cialis no prescription fast deliveryhttp://www.buyviagrageneric.co.uk#70789 viagra no prescription - buy viagra softhttp://pamelahelmephotography.com/#39765 how imitrex works - imitrex ovulation calculatorhttp://www.buyonlinecialis.co.uk#69839 buy cialis without prescription - cialishttp://www.buyviagrageneric.co.uk#33178 viagra - viagrahttp://www.buy-tramadol-now.com/#26499 active ingredients in tramadol - does tramadol cause constipationhttp://www.orderphenterminenow.org/#82098 phentermine diet pills dosage - phentermine pill markingshttp://www.buyviagrabluepills.com#95147 cheap order phone viagra - viagra tramadol zithromax carisoprodol buy cialishttp://www.the-hangs.com#39100 levitra - buy levitra cheap
+
Как минус - обращаться к объектам библиотеки напрямую нельзя, только через [[dlsym]].
 +
 
 +
== Параметры ==
 +
#'''const WCHAR * file
 +
#:Либо полный путь к библиотеке, либо просто имя библиотеки.
 +
#:В последнем случае, библиотека будет искаться в стандартных путях для библиотек (прописаны в elfpack.cfg) и в папке с эльфом.
 +
#:''Замечание.'' В папке эльфа ищется только после завершения вызова __start().
 +
#'''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]]

Текущая версия на 04:52, 8 апреля 2019


Объявление

DLHANDLE dlopen( const WCHAR * file, int mode );

Описание

Функция ElfPack2, загружает динамическую библиотеку (*.so) во время выполнения.

Обычно требуемая библиотека указывается еще на этапе линковки эльфа и она автоматически загружается вместе с эльфом. Это не всегда удобно, т.к. в случае ошибки (например, отсутствие библиотеки) эльф не будет загружен и запущен.

Загрузка во время выполнения дает больший контроль над этим процессом - можно загружать библиотеку только при необходимости и можно обрабатывать ошибки.

Как минус - обращаться к объектам библиотеки напрямую нельзя, только через dlsym.

Параметры

  1. const WCHAR * file
    Либо полный путь к библиотеке, либо просто имя библиотеки.
    В последнем случае, библиотека будет искаться в стандартных путях для библиотек (прописаны в elfpack.cfg) и в папке с эльфом.
    Замечание. В папке эльфа ищется только после завершения вызова __start().
  2. int mode
    Параметры загрузки библиотеки.
    На данный момент поддерживаются только RTLD_NOW|RTLD_LOCAL = 0 - библиотека загружается немедленно и доступ к её функциям можно получить только через dlsym.

Результат

  1. DLHANDLE
    Идентификатор (хендлер) библиотеки, который используется в функциях dlsym и dlclose.
    В случае неудачи возвращается 0, и код ошибки можно узнать с помощью функции dlerror.

Пример

DLHANDLE solib;
// Загружаем библиотеку из папки с эльфом
solib = dlopen( L"library.so", 0 );
if(solib == 0)
{	cprintf("library.so not found, error = %d\n", dlerror());
}

См. также

dlsym

dlclose

dlerror