C++Talk.NET Forum Index C++Talk.NET
C++ language newsgroups
 
Archives   FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Re: Plugin System

 
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ (German)
View previous topic :: View next topic  
Author Message
Patrick Kursawe
Guest





PostPosted: Tue May 18, 2004 6:03 am    Post subject: Re: Plugin System Reply with quote



Andre wrote:

Quote:
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 ?

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





PostPosted: Tue May 18, 2004 1:24 pm    Post subject: Re: Plugin System Reply with quote



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





PostPosted: Tue May 18, 2004 5:28 pm    Post subject: Re: Plugin System Reply with quote



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
Display posts from previous:   
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ (German) All times are GMT
Page 1 of 1

 
Jump to:  
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


Powered by phpBB © 2001, 2006 phpBB Group
SEO toolkit © 2004-2006 webmedic.