2009-07-27 16 views
1

Ich arbeite an einem QT-Projekt, das hauptsächlich auf C-Bibliotheken basiert.Qt-Wrapper für C-Bibliotheken

Ich mag die Art, wie QT funktioniert, und möchte für jede C-Bibliothek, mit der ich arbeite, einen C++ - Wrapper (mit ähnlichem QT-Stil) erstellen.

Was sind Ihre Empfehlungen und Ratschläge? Was soll ich tun und was nicht.

Ich würde gerne Antworten auf realen Lebenserfahrung hören.

Dank

+0

Was meinst du mit einem "QT-artigen Wrapper"? – vog

+0

Ich meine Wrapper-Klassen ähnlich wie QTs, mit Signalen und Slots, Objekte ... – karatchov

Antwort

0

Gibt es einen Grund, nicht nur von c die c-Bibliotheken zu nennen ++?

Ich frage, weil dies die größte Abweichung von QT und GTK ist, QT ist C++ native GTK ist C nativ. Viele Entwickler geben an, dass sie GTK nicht so sehr mögen, wie alles in C verarbeitet werden muss.

+0

Es gibt eine Reihe von möglichen Gründen, von denen man im Grunde eine Menge des Kessels-Platte-Code in den Konstruktoren/Destruktoren für die Klasse verstecken kann, Außerdem können Sie RTTI einfach verwenden, anstatt es jedes Mal manuell zu tun. Das Erstellen des Wrappers bedeutet auch, dass es sich im Hauptteil des Codes grundsätzlich um einen einzelnen Codierungsstil handeln kann. Die Vorteile hängen wirklich vom Entwickler, der Situation und dem C-Code ab (einige C-Code ist einfach ein Schmerz zu arbeiten mit zu beginnen, in der Lage zu verstecken ist irgendwo außerhalb ist oft eine schöne Fähigkeit- anderer Code viel angenehmer zu arbeiten). – Kitsune

+0

Ich war müde und denke, dass ich falsch gelesen habe, wenn es C++ Wrapper um C-Bibliotheken ist, ist das wahrscheinlich eine ziemlich gute Idee. – ewanm89

3

Es gibt a classic article zum Entwerfen von Qt-style-APIs, die für Sie hilfreich sein könnten.

Im Allgemeinen würde ich empfehlen, dem Qt-Stil so viel wie möglich zu folgen und die Details der zugrunde liegenden Bibliothek zu verbergen, wo Sie können. Sie können den Qt-Quellcode als Referenz verwenden - schließlich ist Qt zu einem großen Teil ein Wrapper von C-Bibliotheken, der C-, POSIX- und plattformspezifische Standardbibliotheken verwendet.

Verwandte Themen