Plugin-System mit unbekannten Funktionen



  • Hallo,

    ich möchte ein Plugin-System entwickeln welches mir aus einem Verzeichnis alle Dll's ausliest und anschließend deren Funktionen nutzen kann. (Halt Plugin 🙂 )

    Das Probelm dabei wird sein, dass ich vorher nicht weiß, welche Funktionen in der Dll stecken und mit welchen Parametern sie aufgerufen werden müssen.

    Ich habe schon viel im Forum gelesen und gesehen, dass einige ähnliche vorhaben hatten. Hat einer schonmal soetwas umgesetzt und kann mir einer vielleicht ein wenig Beispielcode zukommen lassen.

    Habe bisher noch nicht viel mit Dlls und Pluginsystemem zu tun gehabt.
    Wissenstand in etwa. Ich kann Dll,s mit Klassen erstellen und ein C-Interface drumherum bastelsen. Diese kann ich mit LoadLibrary etc. in mein Programm einbinden. Desweitern habe ich auch schon eine Funktion die mir ein verzeichnis nach Dlls durchsucht und einen Stringvector mit den Dlls zurückliefert.

    Danke im Voraus und Gruß!!!!



  • Plane was ähnliches, allerdings tendiere ich zu einer klaren Plugin Spezifikation,
    weil unbekannte Funktionen/Klassen kann man nicht laden, da man sie ja nicht kennt.
    Die Schnittstellen müssen halt gut definiert sein, dir muss klar sein, was soll der Plugin können,
    und was soll der User darüber beeinflussen können.



  • Natürlich müssen verschiedene Schnittstelen klar sein damit man überhaupt an irgendwas ran kommt aber über diese defenierten Schnittstellen lassen sich dann ja Informationen über unbekannte Funktionen und ihre Parameter holen. (noch nicht wirklich bestätigte Annahme des Autors)

    Diese Flexibilität ist für mein Projekt unumgänglich nur wie kann ich soetwas umsetzten?



  • Eine Möglichkeit wären Methodenzeiger, aber dann muss die Signatur der Methoden zur Compilezeit bekannt sein.



  • Stonecold_Mario schrieb:

    Natürlich müssen verschiedene Schnittstelen klar sein damit man überhaupt an irgendwas ran kommt aber über diese defenierten Schnittstellen lassen sich dann ja Informationen über unbekannte Funktionen und ihre Parameter holen. (noch nicht wirklich bestätigte Annahme des Autors)

    Diese Flexibilität ist für mein Projekt unumgänglich nur wie kann ich soetwas umsetzten?

    Ok, nehmen wir an das plugin gibt dir eine Adresse und sagt dir, dass der erste Parameter ein unsigned int ist und der zweite ein float. Was machst du jetzt?
    Ohne den Kontext zu kennen sind solche Informationen wertlos. Ergo bringt es dir nichts wenn du unbekannte Funktionen aufrufen könntest.



  • Ist das Plugin-System eines für Windows? (weil du von DLL sprichst) Weil dann wäre doch eigentlich COM+ oder ActiveX hierfür geradezu prädestiniert.


Log in to reply