Plugins erstellen unter linux
-
- Beiträge: 369
- Registriert: Sa 3. Mär 2007, 16:03
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
- Wohnort: Bramsche (Emsland)
Plugins erstellen unter linux
wie kann ich plug ins erstellen, und einbinden?
ich habe vor n prog zu schreiben, das "alles" kann.
ich habe vor n prog zu schreiben, das "alles" kann.
-
- Lazarusforum e. V.
- Beiträge: 2808
- Registriert: Fr 22. Sep 2006, 10:38
- OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
- Wohnort: Hessen
- Kontaktdaten:
Re: Plugins erstellen unter linux
Möglicherweise lässt sich das realisieren, indem du das Plugin als externes Programm ausführst...hanibal hat geschrieben:wie kann ich plug ins erstellen, und einbinden?
-
- Beiträge: 6079
- Registriert: Do 21. Sep 2006, 07:51
- OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
- CPU-Target: AVR,ARM,x86(-64)
- Wohnort: Dessau
- Kontaktdaten:
Normalerweise macht man sowas mit dll s. bzw Bibliotheken und lädt diese dynamisch aber "alles" wirst damit nie machen können da du immer definierte Schnittstellen brauchst. Gibt mindestens 10 Tuturials zu dem Thema im Nez ich schätze eher 50.
Google Suche nach Delphi und Plugins liefert als zweites Ergebnis z.b. einen beitrag mit dem näckischen Titel Delphi-PRAXiS :: Erstellen eines Delphi-PlugIns. Was sag uns das ? Richtig draufklicken und lesen.
Google Suche nach Delphi und Plugins liefert als zweites Ergebnis z.b. einen beitrag mit dem näckischen Titel Delphi-PRAXiS :: Erstellen eines Delphi-PlugIns. Was sag uns das ? Richtig draufklicken und lesen.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
-
- Lazarusforum e. V.
- Beiträge: 2809
- Registriert: Sa 9. Sep 2006, 18:05
- OS, Lazarus, FPC: Linux (L trunk FPC trunk)
- CPU-Target: 64Bit
- Wohnort: Dresden
- Kontaktdaten:
Mit Formularen in Dlls wirst du allerdings zur Zeit bei Laz nicht glücklich werden, falls du darauf hoffst.
Diese Möglichkeit wird allerdings noch nicht wirklich unterstützt soweit ich weis. Also entweder die Oberfläche über die Dll und Parameterübergabe irgendwie umstellen oder gleich kleine externe Programme schreiben und über TProzess aufrufen.
Diese Möglichkeit wird allerdings noch nicht wirklich unterstützt soweit ich weis. Also entweder die Oberfläche über die Dll und Parameterübergabe irgendwie umstellen oder gleich kleine externe Programme schreiben und über TProzess aufrufen.
-
- Beiträge: 3444
- Registriert: Mo 11. Sep 2006, 10:24
- OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
- CPU-Target: X32 / X64 / ARMv5
- Wohnort: Krefeld
Bei Plugins sing Formulare in DLLs aber das übliche.Christian hat geschrieben:Formulare gehören ja auch ne in dlls
Da ists doch günstiger ein externes Programm zu nehmen und Interprocesskommunikation.
Außerdem brauchen manche Plugins auch kein Multithreading/Multitasking. Dann würde ein weiterer Prozess die Komplexität unnötig erhöhen.
In Delphi geht das ganz einfach mit DLLs oder noch besser gemanaged mit Runtime-Packages.
Interprozess-Kommunikation ist sicherlich nicht verkehrt, aber für eine vernünftige Plug-in-Lösung müsste
- eine performante inter-Prozess-Kommunikation Plattform-unabhängig von Lazarus vorgegeben sein
- die inter-Prozess-Kommunikation leicht benutzbar sein
- eine Plattform-unabhängige Methodik vorgegeben sein, den Plugin-Prozess als Dämon (oder "user-Dienst") unsichtbar zu starten.
-Michael
-
- Beiträge: 6079
- Registriert: Do 21. Sep 2006, 07:51
- OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
- CPU-Target: AVR,ARM,x86(-64)
- Wohnort: Dessau
- Kontaktdaten:
Das ist ja quatsch üblich ist das gar nicht weil es in den meissten anderen Sprachen gar kein Rad gibt also auch keine Formulare da werden die fenster dann zu fuss in der dll erstellt und das geht natürlich auch in fpc. Ich habs der Sauberkeit halber mal so gemacht das die Plugins eine XML Beschreibung der Form samt Eventnamen an das Hauptprogramm schicken und das dann die Frm erstellt und die Events auf die DLL Funktionen umbiegt ist gar nicht mal so viel Aufwand und man braucht keine Spezialspielchen in den Plugins ausserdem ists zu jeder Programmiersprache kompetibel und nicht nur zu Lazarus oder Delphi wie das mit den Formularen ist.Bei Plugins sing Formulare in DLLs aber das übliche.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
-
- Beiträge: 3444
- Registriert: Mo 11. Sep 2006, 10:24
- OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
- CPU-Target: X32 / X64 / ARMv5
- Wohnort: Krefeld
Hört sich interessant an.Christian hat geschrieben:Ich habs der Sauberkeit halber mal so gemacht das die Plugins eine XML Beschreibung der Form samt Eventnamen an das Hauptprogramm schicken und das dann die Frm erstellt und die Events auf die DLL Funktionen umbiegt
Was meinst Du denn mit "Schicken" ?
Warum eine XML-Beschreibung ? Lazarus benutzt für die Beschreibung der Forms doch ein bestimmtes Ressource-Format. Da müsste man doch bei bleiben können um keinen neuen Interpreter schreiben zu müssen und den Lazarus Form-Designer zu verwenden.
"Im Prinzip" sollte es doch reichen, im Plugin (.dll bzw .so) eine Ressource zu haben, die das Form beschreibt und dann den Form-Create-Mechanismus, der im Hauptprogramm ohnehin eingebunden ist, mit einem passenden Pointer aufzurufen. Der sollte das Form dann kreieren. Mir ist nicht von vorne herein klar, wie die Event-Properties mit den dynamischen Adressen in der .dll/.so belegt werden, das sollte aber möglich sein.
-Michael
Zuletzt geändert von mschnell am Sa 31. Mär 2007, 11:59, insgesamt 1-mal geändert.