PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [c] module dynamisch laden? wie?



quinte17
13-03-2004, 08:29
hallo allerseits!
ich würde gerne wissen wie man sowas macht, also verschiedene module schreiben die unterschiedliche aufgaben haben, und je nach bedarf des richtige zur laufzeit einbinden... (so wie es z.b. bei winamp auch der fall ist)

wäre super wenn mir einer links zu dem thema geben könnte (habe leider noch nichts gefunden was mir hilft ;() oder buchliteratur empfehlen

danke!
quinte17

SeeksTheMoon
13-03-2004, 09:42
Du musst in Deiner App eine Plugin-Registrierung einbauen (um zu wissen, was es gerade für Module gibt und um sie ansteuern zu können) und eine Schnittstelle definieren, die so ein Plugin haben muss, um angesprochen werden zu können.

Du kannst Dir den Quellcode z.B. von xmms anschauen oder Dir die Crystalspace-Engine vorknöpfen, die bietet solche Mechanismen an.

anda_skoa
13-03-2004, 11:18
Ein einfaches Beispiel findet sich in der Manpage von dlopen.

Im Grunde geht es darum, eine Bibliotheksdatei zur Laufzeit zu öffnen (dlopen) und dann mit dlsym ein Symbol (eine Funktion) aus der Datei zu benennen und aufzurufen.
Alle Pluginbibliotheken haben dabei eine Funktion mit dem selben Namen, bzw. mehere Funktionen mit vorher definierten Namen.

Ciao,
_