Wir entwickeln eine Anwendung, die eine Plug-in "-Architektur" haben wird, um es den Konsumenten der App zu ermöglichen stellen ihre eigenen proprietären Algorithmen zur Verfügung. (Wir werden grundsätzlich eine Reihe von Parsern haben und Dritten erlauben, auch ihre eigenen zu liefern)Empfehlung für C++ - Wrapper für plattformübergreifende dynamische Bibliotheksbindungen (dh ein leichtes, leistungsstarkes COM oder CORBA)
Der Domainraum erfordert sehr hohe Leistung, so dass Out-of-Process-Bindings nicht funktionieren und wir lieber gehen die Schwergewichte wie CORBA und COM allein.
Grundsätzlich suchen wir nach einem einfachen Cross-Plattform-Wrapper um:
- Ladebibliothek von einem relativen Pfad
- eine Zuordnung der jeweiligen dll bieten/.so zu einem gewissen Konfiguration/namen
- eine Initialisierung tun und die Bibliothek abfragen, um sicherzustellen, dass sie die notwendige Funktionalität
ich denke, das ist wirklich nur eine Umhüllung um Loadlibrary() und die Methodenaufrufe bieten exportiert. Wir können das selbst schreiben, aber wir würden lieber vorhandenen Code verwenden, da wir genug auf unserem Teller haben.
Auch hier sind Durchsatz und Leistung sehr wichtig.
ähnliche Fragen sind:
Cross-platform alternative to COM - das ein in der Nähe ist, aber wir wollen nur in-Prozess - keine Notwendigkeit für außerhalb des Prozesses und unsere Bedürfnisse sind ein wenig „geringeres Gewicht“.
C++ Cross Platform Dynamic Libraries; Linux and Windows
Dies ist für nicht verwaltete C++ - wir nicht .NET
bearbeiten können - was wir
gefunden Wir fanden, dass Poco für unsere Bedürfnisse funktioniert gut. Als Bonus ist This page ein sehr geschätzter Kommentar zum Stand der C++ - Entwicklung und der Sprachrichtung ...
Es war eine einfache plattformübergreifende Verpackung, die wir von Poco benötigten. Wirklich, es gibt nicht viel, aber spart uns Zeit und Tests. Kein zusätzlicher Overhead während der Laufzeit
Ich glaube nicht, dass jemand dies ausdrücklich in-Prozess zu tun hat gestört. XPCOM ist das Beste, was einem einfällt. –
poco scheint den Trick zu tun – Tim
@Tim: Mein Kommentar ist eher mit der Idee von _a Plug-in "Architektur", um den Verbrauchern der App zu ermöglichen, ihre eigenen proprietären Algorithmen zur Verfügung zu stellen. So zielt mein Projekt die gleiche Funktionalität, aber wir haben ein ernstes Problem, dass, wenn Benutzercode eine Endlosschleife durchläuft, der Thread, auf dem der verwendete Code läuft, einen Kern der CPU sperrt, wodurch die Leistung verringert wird. Einige, wie dieser Thread gestoppt werden muss. Hast du das gleiche Problem? Wenn ja, was ist Ihre Lösung? –