Die Python-Dokumentation enthält eine Seite zum Einbetten von Python in eine C- oder C ++ - Anwendung.
Warum nicht Boost.Python? Sie können Ihre Datenklassen Python aussetzen und ein Skript / eine Funktion ausführen, wie in hier .
Wie wäre es mit einer JavaScript-Engine wie V8 ?
?Vergessen Sie nicht den Grand-Daddy der eingebetteten Skriptsprache - tcl.
tcl hat einen netten C ++ - Wrapper (der auf boost.python basiert), der es einfach macht, Callbacks zu Ihrem Code aufzurufen und zu verkabeln
Lua funktioniert auch ziemlich gut, vor allem, weil es klein ist, ansi c-konform ist, einen niedrigen Speicher-Footprint zusammen mit einer tollen Wiki- und Messaging-Liste hat. Wenn Sie noch mehr Geschwindigkeit benötigen, gibt es eine x86 32 und 64 bit jit Version (luajit). Das Binden kann mit einem Array von Werkzeugen / Bibliotheken wie swig oder lunar erfolgen (das Wiki listet sie alle auf). Das einzige Problem, das ich sehen kann, ist das Binden der Struktur-Mitglieder, so dass sie direkt referenziert werden können (zB: struct.member = 4), obwohl es möglich ist, dies mit Metatabellen einzurichten, die get- und set-Methoden an Variablennamen gebunden haben >
Für etwas so einfaches wie Sie beschreiben, könnten Sie einen Interpreter für Ihre eigene "kleine Sprache" implementieren. Man könnte es sogar "Robin" nennen. ; -)
Sie sagen, dass Sie nicht nach etwas suchen, um Ihre C ++ Funktionen / Klassen in eine Python-Schnittstelle zu packen, aber wenn Sie wollen, dass Python-Code auf Mitglieder Ihrer C ++ %code% -Struktur verweisen kann, umschließt C ++ - Klassen in einer Python-Schnittstelle. Natürlich können Sie beliebig viele oder beliebig viele Klassen umbrechen - in diesem Beispiel würden Sie %code% umbrechen, dann würden Sie bette einen Python-Interpreter ein um Sachen mit %code% zu machen.
Wenn Sie einfach Python-Skripte von C / C ++ ausführen möchten, verwenden Sie die Python-C-API . In Ihrem C / C ++ Code:
%Vor%Für kompliziertere Dinge müssen Sie sich die API-Dokumentation ansehen, aber es ist ziemlich einfach.
Ich rate mit Lua als interne Scripting-Engine. Implementierung ist nur ein paar Zeilen, und obwohl leicht, hat die Sprache genügend Kraft. Also keine Notwendigkeit für TCL. Sie können sich auch Python ansehen, die Integration in C ++ ist ziemlich einfach, da es ein Boost.Python Implementierung erleichtert die Integration.
Aber je nach Anwendung würde ich Lua immer noch empfehlen.
Ich bin wirklich neu in C ++ und bin auf ein Problem gestoßen, das ich durch das Lesen von Dokumentationen nicht lösen konnte.
Ich möchte eine Skriptsprache in meine C ++ - Anwendung einbetten. Diese Sprache könnte Javascript, Lua oder vorzugsweise Python sein.
Ich bin nicht auf der Suche nach etwas wie Boost.Python / swig, etwas, das in der Lage ist, meine C ++ - Funktionen / -Klassen in eine Python-Schnittstelle einzubinden, sondern eher eine %code% -Funktion.
Ich habe eine ganze Reihe von Strukturen, die ein paar ganze Zahlen enthalten:
%Vor%Nun möchte ich etwas Mathematik mit diesen ganzen Zahlen machen, zum Beispiel:
%Vor%Die Mathematik, die ich machen möchte, wird sich in der Zukunft stark verändern und ich brauche andere Leute, die anders als ich in der Lage sind, die Mathematik zu ändern, ohne Zugriff auf den C ++ - Code zu haben.
Ich denke über eine Code-Struktur wie folgt nach:
Ist so etwas möglich? Ich habe viel gegoogelt, aber das einzige, was ich zu finden scheint, sind Wrapper, die c ++ - & gt; Python (oder andersherum) Funktionalität, ohne wirklich mit Variablen zu interagieren.
Ich wäre wirklich dankbar für jede Hilfe,
Robin.