Ich habe ein College-Projekt unter Verwendung von C++ zu tun, die eine grafische Benutzeroberfläche erfordert. Ich möchte Perl/Tk für die GUI verwenden, aber ich bin mir nicht sicher, wie man das C++ mit dem Perl verbindet. Das Projekt erfordert, dass Variablen übergeben werden können. Könnte jemand mich in die Richtung einiger guter Tutorials/Bücher verweisen, um die zwei zu verbinden, oder irgendwelche Ideen, wie ich das Problem angehen sollte, weil ich vorher nie zwei Sprachen verbinden musste.Perl/Tk GUI für C++ Anwendungs
Antwort
Sie können auch swig versuchen. Es ist ein Werkzeug zum Erzeugen von Schnittstellen zu verschiedenen Skriptsprachen aus C/C++.
Da Perl wird die GUI zur Verfügung stellt, würde ich den C++ Code in Perl einbetten. Angenommen, es wird eine erhebliche Menge an C++ - Code geben, würde ich das in eine Bibliothek legen. Die traditionelle Art, diese Bibliothek mit Perl zu verknüpfen, besteht darin, ein Perl-Modul mit XS zu erstellen. Die Tutorial for writing XSUBs und XS language reference manual werden dabei helfen.
Eine etwas einfachere Weise kann das Inline Modul zu verwenden sein. Ich habe Inline::C vorher verwendet, und es hat gut funktioniert, aber ich habe nie versucht Inline::CPP (die C++ Version). Ich sehe es hat mixed reviews.
wenn ihr ein kleines Projekt, seine wahrscheinlich die Investition nicht wert viel Zeit bekommen, die beiden Sprachen zu verbringen, um zu reden. Sie könnten in Erwägung ziehen, ein geeigneteres Werkzeug zu verwenden. C# spricht mit viel weniger Schmerzen mit C++.
Wenn ich dieses Problem angehen würde, würde ich TCL/TK verwenden, um eine GUI zu erstellen und dann eine TCL-Erweiterung in C/C++ zu erstellen, die von TCL/TK aufgerufen werden kann. Dies ist einer der Punkte, bei denen TCL/TK wirklich gut ist (andere dynamische Sprachen können das auch, aber ich mag TCL/TK). Sie erstellen eine gemeinsam genutzte Bibliothek (.so unter Unix oder .dll unter Windows) mit den C++ - Bits und sie werden als Befehle in TCL importiert, wenn Sie die Bibliothek laden.
Swig, das bereits erwähnt wurde, ist ein Tool, das hilft, den Wrapping-Prozess zu automatisieren. Es kann Ihren C++ - Code verwenden und einen Wrapper erstellen, der das Laden in mehrere Sprachen wie TCL, Perl, Python ermöglicht. Rubin ...
Start bei http://www.tcl.tk/ für viele inform eines TCL und TK.
Follow-up Jahre später. Inline :: CPP wurde seit 2003 nicht mehr gepflegt. 2011 habe ich angefangen, als Co-Maintainer daran zu arbeiten und habe zwischen November 2011 und Mai 2012 rund 135 Patches geschrieben. Es ist jetzt viel besser in Form. Die RT-Fehlerliste ist auf einen veralteten Gegenstand der Wunschliste zurückzuführen. Und die Erfolgsquote der CPAN-Tester liegt bei bis zu 90%. – DavidO