[wxWidgets] Anwendung mit plugins erweitern
-
Hallo zusammen,
ich versuch mich grade an einer kleinen Pluginfähigen Anwendung, leider klappt dies nicht so ganz wie es sein sollte.
Wie lässt sich eine Anwendung am besten mit Plugins erweitern?
Die Plugins sollen neue Menüpunkte, Toolbars, Dialoge, Fenster, etc. enthalten bzw. die vorhandenen erweitern können.
Hat hier jemand schon mal so etwas ähnliches gemacht und kann mir nen Tipp dazu geben?
-
Jup, hab ich schon gemacht.
Aber bevor ich hier nen riesen Artikel schreibe:
http://wiki.wxwidgets.org/Programs_That_Support_Plugins
rya.
-
Den Link kenne ich, auch einzelne Menüpunkte, etc. krieg ich in den Hauptframe rein, aber die Events reagieren nicht darauf. Deswegen interessiert es mich mal wie es manche Leute (so wie auch du) umgesetzt haben die solche funktionalität schon mal benötigten.
-
*schnell einlogg*
Ich mach Dir ein sample, aber vor heute abend oder morgen wird das leider nix :(.
rya.
-
Scorcher24 schrieb:
*schnell einlogg*
Ich mach Dir ein sample, aber vor heute abend oder morgen wird das leider nix :(.
rya.Das wäre klasse, du kannst dir da aber auch gerne mehr Zeit lassen und mußt nicht hetzen...
Schon mal ein fettes Danke an dich!
-
So, hier ist was für dich:
http://scorcher24.piranho.org/files/wxPluginTutorial.zipBei mir ging es problemlos. Vorkompilierte Win32-Datei ist drin, braucht aber msvcrt90.dll und msvcp90.dll. Es ist ein wenig quick und dirty, aber es zeigt wie es geht. Es gibt einen Menü-Eintrag der vom Plugin erzeugt wird und das Plugin zeichnet auf den Canvas vom Hauptframe. Sobald ein Plugin sich als "Painter" authentifiziert, wird das in eine Liste geschubst und dann in "OnPaint" aufgerufen. Der Menü-Eintrag wird IM Plugin erzeugt. Wichtig ist die Funktion "GetFreeId()". Diese zeigt ganz gut die Problematik, der ID. Die ID sollte natürlich immer frei sein, sonst geht das ganze nicht. Deswegen nehme ich IMMER IDs oberhalb von wxID_HIGHEST. Man könnte die Methodik hier noch ausbauen in GetFreeID() aber ist ja nur ein sample :).
Auf http://wiki.wxwidgets.org/Programs_That_Support_Plugins gibts auch ein sample:
http://gaos.org/~schleif/portable_plugin_example.tar.gz
Das hab ich aber nicht getestet.
rya.
-
Hm, interessant. Interessiere ich mich auch schon länger für, hatte bisher aber keine Zeit.
Das ist aber alles nur über dynamisch gelinktes wx realisierbar, oder hat jemand auch ein beispiel für statisch gelinkte Plugins?
Das 2. Beispiel kann ich leider nicht öffnen im TotalCommander.
phlox
-
Dank dir Scorcher24.
Der Link http://scorcher24.piranho.org/files/wxPluginTutorial.zip führt leider nur zu einer Fehlermeldung 404 das die Datei nicht existiert. Könntest du diese bitte nochmals hochladen?!Da bin ich mal sehr gespannt auf dein sample...
-
Sorry für die späte Antwort aber ich hab Urlaub
Die Deppen bei piranho haben mir doch meine webseite gesperrt und alle Dateien gelöscht, nur weil ein Teil englisch war.Scheissdreck.
Musst dich leider gedulden, ausser Phlox hat es noch und haut es kurz bei rapid rein.@phlox
Plugins sind generell nur möglich wenn dynamisch gelinkt wurde... soweit ich weiss.
rya.
-
Scorcher24 schrieb:
Sorry für die späte Antwort aber ich hab Urlaub
Die Deppen bei piranho haben mir doch meine webseite gesperrt und alle Dateien gelöscht, nur weil ein Teil englisch war.Scheissdreck.
Musst dich leider gedulden, ausser Phlox hat es noch und haut es kurz bei rapid rein.@phlox
Plugins sind generell nur möglich wenn dynamisch gelinkt wurde... soweit ich weiss.
rya.Kein Problem, ich kann auch noch ein bisschen warten. Also, in diesem Sinne mal so weit einen schönen Urlaub...
-
Tut mir leid, dass das so lange dauert, aber bin atmo ohne Netz weil kurz vorm Umzug....
http://uploadbox.com/files/7e87d263ff
Habs wieder hochgeladen. Meine Webseite hab ich auch wieder on. Aber bei nem anderen Hoster, der auch eng. Webseiten erlaubt.
Egal, viel Spaß damit.
rya.
-
Kein problem...
Danke dir vielmals für deine mühen, dass Beispiel sieht sehr vielversprechend zum Verständnis für mich (und auch bestimmt noch andere) aus...
-
Scorcher24 schrieb:
Tut mir leid, dass das so lange dauert, aber bin atmo ohne Netz weil kurz vorm Umzug....
http://uploadbox.com/files/7e87d263ff
Habs wieder hochgeladen. Meine Webseite hab ich auch wieder on. Aber bei nem anderen Hoster, der auch eng. Webseiten erlaubt.
Egal, viel Spaß damit.
rya.Wollte es auch laden.. aber bekomme immer "502 Bad Gateway" könntest du es bitte irgendwo anders hochladen? wie z.B ( www.uploaded.to ) , ( www.fileshost.com ) , ( www.speedshare.org/ )
Danke.
-
Geht jetzt wieder.. puh danke.
-
Ein weiteres schönes Beispiel wie man es ebenfalls machen kann lässt sich im Quellcode der Codelite (diese IDE finde ich für wxWidgets Optimal, da hier auch der Intellisense super funktioniert) anschauen...
Link zur hp: http://www.codelite.org
-
guenni81 schrieb:
Ein weiteres schönes Beispiel wie man es ebenfalls machen kann lässt sich im Quellcode der Codelite (diese IDE finde ich für wxWidgets Optimal, da hier auch der Intellisense super funktioniert) anschauen...
Link zur hp: http://www.codelite.orgWow! Diese IDE kannte ich noch garnicht! Danke für die URL!
-
Bulli schrieb:
Wow! Diese IDE kannte ich noch garnicht! Danke für die URL!
Ich kannte diese IDE bis gestern auch noch nicht, aber bis jetzt bin ich begeistert davon. OK, es gibt bestimmt die ein oder andere Ecke wo man sagen kann, das könnte besser sein, aber wo ist das nicht so. Mal abgesehen davon kann man auch selbst Hand an die IDE legen und das ganze in das Projekt zurückfließen lassen.