Ich muss wissen, wie ich eine Anwendung auf Basis der Plug-in-Architektur schreiben kann. Ich meine, wie man einen Basiscode schreibt und andere die Anwendung entwickeln lässt, indem man die Plug-Ins hinzufügt, die sie schreiben. Ich weiß, dass es in C ++ einige Probleme gibt. Die meisten Leute benutzen eine andere Sprache wie Python, um Plug-ins zu ihrer C ++ - Anwendung hinzuzufügen.
Ich denke, das ist nicht die Antwort, die Sie erwarten, aber Sie könnten versuchen, die Rainmeter Quellen zu untersuchen. Es ist in C ++ geschrieben (einige Orte könnten besser gemacht werden, aber insgesamt ist es in Ordnung) und die ganze Anwendung ist so gemacht, so dass es nur Plugins behandelt.
Sogar die einfache API wird über Plugins gemacht, es gibt auch eine Reihe von Beispielen von beigetragenen Plugins, ich meine, geschrieben von jemand anderem (ich habe das auch eines Tages getan).
Ich denke, Sie könnten tatsächlich viele neue Tricks in der pluginbasierten Entwicklung studieren, indem Sie sich andere Anwendungen ansehen.
Auch eine andere gute Probe ist Miranda IM .
Bearbeiten: Wenn ich die gleiche Aufgabe habe, würde ich tatsächlich ein paar python
(oder etwas ähnliches) Backend zu meiner Anwendung hinzufügen und es als Sprache für SDK verwenden (zum Beispiel , mit boost::python
).
Sie sollten:
Ihr Plugin kann über diese Schnittstelle mit der Host-Anwendung kommunizieren. Das heißt, Sie müssen genau überlegen, was Sie mit Ihren Plugins machen wollen.
Sie müssen wahrscheinlich verschiedene Versionen der Schnittstelle unterstützen, wenn sich Ihre Host-Anwendung ändert und Sie Funktionen hinzufügen.
Können Sie in Ihrer Anwendung Zugangspunkte definieren, mit denen eine externe Anwendung kommunizieren kann?
Nehmen wir an, Sie definieren einen Named-Pipe-Mechanismus oder einen TCP / IP-Socket, wobei die externe Anwendung diese API dazu aufrufen würde, Ihre Anwendung zu manipulieren?
vorausgesetzt, dass Sie diese Plugins in der Hauptanwendung registrieren müssen, bevor Sie ihnen die Verwendung Ihrer Anwendung gestatten. Sie könnten sogar öffentlich-private Zertifikate hinzufügen, um den Ursprung dieses Plugins zu authentifizieren (d. h. das Plugin mit einem privaten Schlüssel zu signieren, bei dem Instanzen Ihrer Anwendung gegen einen öffentlichen Schlüssel validieren würden)
Tags und Links c++ plugins linux architecture add-in