Portál AbcLinuxu, 25. dubna 2024 13:27


Dotaz: Interface sdilenych knihoven

15.10.2008 14:38 letana
Interface sdilenych knihoven
Přečteno: 277×
Odpovědět | Admin
Zdravim,

snazim se zjistit podrobnosti pri pouzivani sdilenych knihoven, ale marne. Vytvarim program, ktery bude vyuzivat sdilene knihovny. Prvnim problemem je, ze dopredu neznam, ktere sdilene knihovny to budou, mel by to ovlivnovat uzivatel. Tato situace se da jiste resit pomoci dlopen a dlsym..., nebo se mylim? Je jina varianta? Druhym vetsim problemem je, ze take neznam interface knihoven, nevim tedy nazvy funkci v nich. Je jina varianta, nez aby vsechny knihovny meli stejne, mnou urcene, rozhrani? Je mozne zjistit rozhrani jiz nainstalovane knihovny?

Pro zpresneni uvedu priklad: program by mel tridit data, pritom tridici algoritmy jsou obsazeny ve sdilenych knihovnach (ne nutne jeden algoritmus na jednu knihovnu). Nechci ovlivnovat jak budou napsany sdilene knihovny, nechci nutit pisatele knihoven, aby museli psat funkci s nazvem start... Je to takto mozne?

Mnohokrat dekuji
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

15.10.2008 15:48 happy barney | skóre: 34 | blog: dont_worry_be_happy
Rozbalit Rozbalit vše Re: Interface sdilenych knihoven
Odpovědět | | Sbalit | Link | Blokovat | Admin
Názov vstupnej funkcie potrebujete, môže to byť aj argument (string).

Resp, je tu možnosť napísať analyzátor kódu a zistiť, či tá-ktorá funkcia pracuje podľa predstáv programu ... :-)

15.10.2008 16:27 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
Rozbalit Rozbalit vše Re: Interface sdilenych knihoven
zistiť, či tá-ktorá funkcia pracuje podľa predstáv programu ... :-)
Myslíte vyřešit halting problem? :-D

Jinak tazatel si v otázce vlastně sám odpověděl: hledá způsob, jak vytvořit rozhraní – inu, musí ho definovat. Myslím, že v Céčku je definice signatur funkcí pro tenhle účel standardní postup.
Ještě na tom nejsem tak špatně, abych četl Viewegha.
16.10.2008 00:56 luky
Rozbalit Rozbalit vše Re: Interface sdilenych knihoven
Odpovědět | | Sbalit | Link | Blokovat | Admin

Krome nazvu funkci musite znat i pocet parametru, jejich poradi, datove typy a vyznam. Nemuzete se spolehnout na to, ze budou "exportovane" jen ty funkce, ktere chcete a umite pouzit. Atd.

Zcela dynamicke reseni neni mozne. Vzdy je potreba nejakym zpusobem predem znat/definovat interface, pripadne s urcitou merou prizpusobivosti.

Ja jsem kdysi podobny problem resil pomoci samostatnych konfiguraku popisujicich knihovny/funkce, ktere jsem dodelaval podle potreby, jak klient z ruznych zdroju dostaval dalsi knihovny, ale to je opravdu reseni, kteremu je lepsi se vyhnout.

Kazdopadne seznam funkci se z knihoven da zjistit treba pomoci libbfd, ale je otazka jestli vam to k necemu bude.

Pavel Stárek avatar 25.10.2008 12:59 Pavel Stárek | skóre: 44 | blog: Tady bloguju já :-) | Kolín
Rozbalit Rozbalit vše Re: Interface sdilenych knihoven
Odpovědět | | Sbalit | Link | Blokovat | Admin
Podle tvého popisu to spíš vypadá na systém zásuvných modulů (pluginů). Tudíž bude asi vhodné (ne-li nutné), aby sdílené moduly (pluginy) měli tebou určené rozhraní. Inspirovat se nechá například přečtením zdrojových textů programu XMMS který má systém pluginů.
Kdo chce, hledá způsob; kdo nechce, hledá důvod.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.