| |
|
|
Pedro Santos | Hallo
Weiss jemand wie ein programm strukturiert werden muss um PlugIns einzubinden, besser wäre ein kleines Beispiel Das ist ein Interessantes Thema doch leider kann ich mir überhaupt nicht vorstellen wie das funktioniert
Danke
Mfg
Pedro |
|
|
| |
|
|
|
| Die Logik dahinter musst Du Dir schon selbst erdenken.
Rein systematisch ist ein Plugin auch nur ein Programm was Informationen verarbeitet.
Hierbei gibt es quasi unendlich viele Varianten und Möglichkeiten - je nach Bedarf.
Was ist denn Dein Bedarf?
Beispiel: Ein Zeichenprogramm mit einem Effektplugin.
Zeichenprogramm speichert aktuelles Bild nach temp/nummer.bild. Zeichenprogramm startet plugin winexecwait(par$(0)+ plugin.prc temp/nummer.bild,0) und übergibt dem Plugin (auf irgend eine Art und Weise) das zu behandelnde Bild. Plugin arbeitet, speichert Bild und beendet sich. Zeichenprogramm läd das Bild und fertig.
Natürlich kannst Du auch die Prozesskomunikation deutlich funktionsreicher gestallten. Hierzu kannst Du z.B. die Pipe-Unit nutzen welche wie dafür geschaffen ist.
Salve. |
|
|
| |
|
|
|
Michael Dell | Stelle mir das so vor (ist naturalmente nur eine Möglichkeit!):
Im Plugin- Ordner befindliche DLL müssen eine Hauptfunktion haben die è z.B.: PlugInFunc hat 8 Übergabeparameter und naturalmente einen Rückgabewert.
Die Richtlinien zur nutzung der Parameter und des Rückwertes musst Du naturalmente festlegen.
Dann können die Plugin Autori innerhalb der Funktion Ihren Code einfügen und auch andere DLL interne Funktionen erzeugen und aufrufen.
Wenn erforderlich können noch weitere Funktionen festgelegt werden z.B.: PlugInInfo die die Anzahl der benutzten Übergabeparameter von PlugInFunc zurückgibt. |
|
|
| Salu Michael...
Hab zwar krumme Fieß awer dofir e' ecklich Gsicht! | 04.12.2005 ▲ |
|
|
|
|
Michael Dell | Hier ein kleines Beispiel (DLL inkl.): |
|
|
| Salu Michael...
Hab zwar krumme Fieß awer dofir e' ecklich Gsicht! | 05.12.2005 ▲ |
|
|
|
|
Michael Dell | Hab das Beispiel verbessert, man kann jetzt deutlich sehen das mit ein und der derselben Definition & Code zwei verschiedene DLL aufgerufen werden!!! |
|
|
| Salu Michael...
Hab zwar krumme Fieß awer dofir e' ecklich Gsicht! | 05.12.2005 ▲ |
|
|
|
|
Jac de Lad | Ich wollts eigentlich noch zurückhalten. Aber ich schreibe grad ein Prog, das bestimmte, angepasste PRCs als Plugins verwenden kann. Leider habe ich noch keine Plugins geschrieben, aber 3 Testdinger sind dabei. Einfach klicken, dann sind die wieder beendet. Ach so, hier noch einige Hinweise:
1. Wundert auch bitte nicht circa den Namen. Ich bin großer Leslie Nielsen-Fan, und habe den Film Dracula - Tot aber glücklich wahrscheinlich ein paar mal zu oft gesehen. Deshalb auch das Bild. Wer den Film kennt wird was mit dem Namen, dem Bild und dem Namen zweier Plugins anfangen können. 2. Das Prog ist ne Alpha, also keine Garantie, das alles corre 3. Wenn ihr ein Plugin startet wird ein Pfeil im Namen angezeigt, das Plugin aber nicht immer. Einfach nochmal auf das Plugin klicken und schon wirds angezeigt. Das klappt auch, wenn gerade ein anderes Plugin aktiv ist.
Ich denke dir gehts weitesgehend um das Thema Kommunikation. Ich habe das beim Starten via SharedMapping gelöst. Wie die Plugins danach mit dem Hauptprogramm und eventuell untereinanderkommunizieren, weiß ich schon, habe ich aber noch nicht implementiert, bzw. gestestet.
Ich schreibe parallel ein SDK, da kann dann jeder sein eigenes Plugin (=eine sinnvolle Funktion, ein sinnvolles Programm etc.) machen.
Naja, keine Ahnung ob das Ding jetzt hier richtig ist oder nicht...
Jac |
|
|
| Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE) Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP | 05.12.2005 ▲ |
|
|
|