Seite 1 von 1
verständnisfrage plugins
Verfasst: 4. Januar 2011 12:51
von anno1988
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?
Re: verständnisfrage plugins
Verfasst: 4. Januar 2011 19:43
von solarix
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.
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:
geht es, im programm eine library zu laden und diese dann auch in den plugins zu nutzen?
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.
hth!
Re: verständnisfrage plugins
Verfasst: 4. Januar 2011 21:26
von anno1988
solarix hat geschrieben:
anno1988 hat geschrieben:
geht es, im programm eine library zu laden und diese dann auch in den plugins zu nutzen?
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.
hth!
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.
Re: verständnisfrage plugins
Verfasst: 4. Januar 2011 21:36
von franzf
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.
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.
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)