 |
C++Talk.NET C++ language newsgroups
|
| View previous topic :: View next topic |
| Author |
Message |
Patrick Kursawe Guest
|
Posted: Tue May 18, 2004 6:03 am Post subject: Re: Plugin System |
|
|
Andre wrote:
Statt eine Bibliothek dynamisch nachzuladen kannst Du natürlich auch eine
Art Client/Server Anwendung stricken, via Netz oder IPC - aber mir ist noch
nicht so ganz klar, wo Dein C++-Problem liegt.
Verwundert, Patrick
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
|
|
| Back to top |
|
 |
Hendrik Belitz Guest
|
Posted: Tue May 18, 2004 1:24 pm Post subject: Re: Plugin System |
|
|
Patrick Kursawe wrote:
| Quote: | Andre wrote:
ich interessiere mich für eine Pluginsystem. Im Netz habe ich
http://www.zfx.info/DisplayThread.php?TID=8127 dazu gefunden. Nun frage
ich mich ob es auch andere Möglichkeiten gibt, ein Pluginsystem zu
entwickeln ?
|
Schau Dir mal QPlugin in der Qt-Library an. Oder vielleicht auch die Sourcen
des Mozilla-Projektes. Die Letztendlich wird eh fast immer die C-Variante
via dlopen(), die man auch direkt verwenden kann; das funktioniert aber nur
auf POSIX-Systemen. Eine reine Lösung auf Basis von ISO-C++ ohne jeglichen
Schnickschnack ist meines Wissens nicht machbar.
| Quote: | Statt eine Bibliothek dynamisch nachzuladen kannst Du natürlich auch eine
Art Client/Server Anwendung stricken, via Netz oder IPC.
|
Das ist, gerade wenn viele Daten hin und her geschickt werden, keine gute
Idee. Man kann IMHO auch die Daten auf Platte schreiben und separate
Prozesse via std::system() aufrufen, die dann damit arbeiten.
--
To get my real email adress, remove the two onkas
--
Dipl.-Inform. Hendrik Belitz
Central Institute of Electronics
Research Center Juelich
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
|
|
| Back to top |
|
 |
Rolf Magnus Guest
|
Posted: Tue May 18, 2004 5:28 pm Post subject: Re: Plugin System |
|
|
Hendrik Belitz wrote:
| Quote: | Patrick Kursawe wrote:
Andre wrote:
ich interessiere mich für eine Pluginsystem. Im Netz habe ich
http://www.zfx.info/DisplayThread.php?TID=8127 dazu gefunden. Nun
frage ich mich ob es auch andere Möglichkeiten gibt, ein
Pluginsystem zu entwickeln ?
Schau Dir mal QPlugin in der Qt-Library an. Oder vielleicht auch die
Sourcen des Mozilla-Projektes. Die Letztendlich wird eh fast immer die
C-Variante via dlopen(), die man auch direkt verwenden kann; das
funktioniert aber nur auf POSIX-Systemen.
|
Ich glaube, daß es nicht mal POSIX ist. Die portabelste Möglichkeit wird
wohl libtool sein. Das kann auf alle möglichen Plugin-APIs aufsetzen
und stellt dem Programm unabhängig davon immer ein dlopen-Interface zur
Verfügung.
| Quote: | Eine reine Lösung auf Basis von ISO-C++ ohne jeglichen Schnickschnack
ist meines Wissens nicht machbar.
|
Das ist richtig. ISO-C++ sieht keinerlei Unterstützung für das
dynamische Nachladen von Programmcode vor.
| Quote: | Statt eine Bibliothek dynamisch nachzuladen kannst Du natürlich auch
eine Art Client/Server Anwendung stricken, via Netz oder IPC.
Das ist, gerade wenn viele Daten hin und her geschickt werden, keine
gute Idee.
|
In diesem Fall kann man das trotzdem so machen. Man kann die Daten z.B.
per shared-Memory ohne Kopieraktionen zwischen den Prozessen
austauschen.
Der Vorteil der Client-/Server-Variante ist, daß ein Plugin das
Hauptprogramm nicht zum Abstürzen bringen kann - vorausgesetzt das
Hauptprogramm ist entsprechend robust programmiert. Bei dlopen und
Konsorten ist so eine Garantie prinzipiell nicht möglich.
| Quote: | Man kann IMHO auch die Daten auf Platte schreiben und
separate Prozesse via std::system() aufrufen, die dann damit arbeiten.
|
Das wäre aber natürlich nochmals deutlich langsamer. Dafür ließe es sich
einigermaßen ISO-konform implementieren, aber portabel ist es leider
trotzdem nicht, da std::system() den übergebenen String lediglich an
die Shell weitergibt, und wie die aussieht, oder welchen String man ihr
übergeben muß, oder sogar ob sie überhaupt existiert, ist nicht
festgelegt.
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
|
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|