hallo zusammen,
ich hätte da eine Verständnisfrage zu den Plugins http://doc.trolltech.com/4.7/plugins-howto.html.
Nehmen wir mal an ich habe ein Plugin, das eine bestimmte Aufgabe übernimmt. Könnte man in solch einem Plugin dann weitere Plugins laden.
Technisch geht das ja sicherlich. Ist nur die Frage ob das auch Sinn macht.
Ich hatte mir das einfach als eine weitere logische Unterteilung des Moduls gedacht.
Oder sollte man davon besser die Finger lassen?
edit:
Oder eine andere Frage dazu.
geht es, im programm eine library zu laden und diese dann auch in den plugins zu nutzen?
verständnisfrage plugins
Re: verständnisfrage plugins
Ja, das kann schonmal vorkommen.. stell dir vor eine Applikation hat ein Soundbackend als Plugin realisiert.. Dann könnte doch ein Soundbackend z.B. die Formate (MP3, WAV, OGG usw) auch als Plugins nachladen (siehe z.B. "fmod").anno1988 hat geschrieben: Nehmen wir mal an ich habe ein Plugin, das eine bestimmte Aufgabe übernimmt. Könnte man in solch einem Plugin dann weitere Plugins laden.
Technisch geht das ja sicherlich. Ist nur die Frage ob das auch Sinn macht.
Auch das geht und macht auch Sinn. Ein Plugin-Interface z.B. kann schon alleine ein Grund sein, eine gemeinsame Library (gelinkt gegen die Applikation und gegen die Library) zu erstellen.anno1988 hat geschrieben: geht es, im programm eine library zu laden und diese dann auch in den plugins zu nutzen?
hth!
Re: verständnisfrage plugins
Wie muss das dann aber gemacht werden. Liege ich da richtig, dass man einfach in jedem Plugin die Header files der library beim Compilieren einbindet und dann beim Programmstart die plugins ladet. somit ist dann die library im modul geladen. wenn ich die library dann noch im Programm benötige, mache ich es da eben so.solarix hat geschrieben:Auch das geht und macht auch Sinn. Ein Plugin-Interface z.B. kann schon alleine ein Grund sein, eine gemeinsame Library (gelinkt gegen die Applikation und gegen die Library) zu erstellen.anno1988 hat geschrieben: geht es, im programm eine library zu laden und diese dann auch in den plugins zu nutzen?
hth!
Re: verständnisfrage plugins
Ein Plugin ist auch nur eine Shared Lib. Damit die ordentlich vom Linker (nach dem Kompilieren) zusammengeklebt werden kann, müssen alle verwendeten Symbole auffindbar sein. Demnach musst du auch das Plugin gegen jene SharedLib linken, die die benötigten Symbole zur Verfügung stellt.anno1988 hat geschrieben:Wie muss das dann aber gemacht werden. Liege ich da richtig, dass man einfach in jedem Plugin die Header files der library beim Compilieren einbindet und dann beim Programmstart die plugins ladet. somit ist dann die library im modul geladen. wenn ich die library dann noch im Programm benötige, mache ich es da eben so.
Macht Qt bei seinen Plugins auch, schau hier:
Code: Alles auswählen
$ ldd /usr/lib/qt4/plugins/imageformats/libqgif.so | grep Qt
libQtGui.so.4 => /usr/lib/qt4/libQtGui.so.4 (0xb6d34000)
libQtCore.so.4 => /usr/lib/qt4/libQtCore.so.4 (0xb6a93000)