Empfehlung für C ++ - Wrapper für plattformübergreifende, prozessinterne dynamische Bibliotheksbindungen (d. H. Eine kompakte, leistungsstarke COM oder CORBA) [geschlossen]

Wir entwickeln eine Anwendung mit einer Plug-in-Architektur, mit der die Nutzer der App ihre eigenen proprietären Algorithmen bereitstellen können. (Wir werden grundsätzlich eine Reihe von Parsern haben und es Dritten ermöglichen, auch ihre eigenen zur Verfügung zu stellen.)

Der Domänenbereich erfordert eine sehr hohe Leistung, so dass prozessexterne Bindungen nicht funktionieren und wir die Schwergewichte wie CORBA und COM lieber in Ruhe lassen.

Grundsätzlich suchen wir nach einem einfachen plattformübergreifenden Wrapper:

Laden Sie die Bibliothek von einem relativen PfadStellen Sie eine Zuordnung der bestimmten DLL / .so zu einer Konfiguration / einem Namen bereitFühren Sie eine Initialisierung durch und fragen Sie die Bibliothek ab, um sicherzustellen, dass sie die erforderliche Funktionalität bietet

Ich denke das ist wirklich nur ein Wrapping um loadlibrary () und die Methodenaufrufe werden exportiert. Wir können das selbst schreiben, aber wir möchten lieber vorhandenen Code verwenden, da wir genug auf unserem Teller haben.

Wiederum sind Durchsatz und Leistung sehr, sehr wichtig.

Ähnliche Fragen sind:

Plattformübergreifende Alternative zu COM - dieser ist nah dran, aber wir wollen nur In-Process - keine Notwendigkeit für Out-of-Process und unsere Bedürfnisse sind ein wenig "leichter".

C ++ Cross Platform Dynamic Libraries; Linux und Windows

Dies ist für nicht verwaltetes C ++ - wir können .NET nicht verwenden

EDIT - was wir gefunden haben

Wir haben das gefundenPoco funktioniert gut für unsere Bedürfnisse. Als BonusDiese Seite ist ein sehr geschätzter Kommentar zum Stand der C ++ - Entwicklung und der Sprachrichtung ...

Es war ein einfaches Cross-Platform-Wrapping, das Poco benötigt. Es ist wirklich nicht viel dabei, aber es spart uns trotzdem Zeit und Zeit beim Testen. Kein zusätzlicher Overhead während der Laufzeit.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage