0% fanden dieses Dokument nützlich (0 Abstimmungen)
71 Ansichten8 Seiten

GUI-Programmierung in C++ Mit Open Source Tools

Der Artikel beschreibt Open-Source-Tools für die GUI-Programmierung in C++ unter Windows. Es werden Basiswerkzeuge wie Compiler, IDE und GUI-Bibliothek vorgestellt. Zusätzlich werden Bibliotheken für Tests und Logging sowie Tools für Dokumentation, Installation und Versionsverwaltung besprochen.

Hochgeladen von

Nalson
Copyright
© © All Rights Reserved
Wir nehmen die Rechte an Inhalten ernst. Wenn Sie vermuten, dass dies Ihr Inhalt ist, beanspruchen Sie ihn hier.
Verfügbare Formate
Als PDF, TXT herunterladen oder online auf Scribd lesen
0% fanden dieses Dokument nützlich (0 Abstimmungen)
71 Ansichten8 Seiten

GUI-Programmierung in C++ Mit Open Source Tools

Der Artikel beschreibt Open-Source-Tools für die GUI-Programmierung in C++ unter Windows. Es werden Basiswerkzeuge wie Compiler, IDE und GUI-Bibliothek vorgestellt. Zusätzlich werden Bibliotheken für Tests und Logging sowie Tools für Dokumentation, Installation und Versionsverwaltung besprochen.

Hochgeladen von

Nalson
Copyright
© © All Rights Reserved
Wir nehmen die Rechte an Inhalten ernst. Wenn Sie vermuten, dass dies Ihr Inhalt ist, beanspruchen Sie ihn hier.
Verfügbare Formate
Als PDF, TXT herunterladen oder online auf Scribd lesen

Dieser Fachbeitrag ist ein Service der InfraSoft Profis für Ihre professionelle Softwareentwicklung.

GUI-Programmierung in C++ mit Open Source Tools


Dieser Artikel beschreibt eine Reihe von aufeinander abgestimmten Open Source
Tools, mit denen Softwareentwickler Windows-Anwendungen mit grafischer
Benutzeroberfläche in der Programmiersprache C++ erstellen können. Die im Beitrag
dargestellten Werkzeuge wurden nach einem umfangreichen Evaluierungsprozess
ausgewählt und als Toolset erfolgreich getestet. Dieses Toolset stellt eine
funktionierende Open Source Lösung für die GUI-Programmierung unter Windows
mit der Programmiersprache C++ dar.

1. Einleitung
Eine effektive Programmierung von Windows-Anwendungen mit grafischer
Benutzeroberfläche in C++ ist seit längerer Zeit ohne weiteres möglich. Mehrere
kommerzielle Entwicklungswerkzeuge erlauben die Erstellung von Windows-
Applikationen samt grafischer Oberfläche durch den Einsatz einer einzigen
Entwicklungsumgebung, in der das Editieren, Kompilieren, Linken, Debuggen und
auch der Entwurf und das Einbinden von grafischen Komponenten möglich ist. Die
Unterstützung eines Versionsverwaltungssystems ist in den meisten großen IDEs
auch vorhanden. Zur vollständigen Ausrüstung einer Windows-Applikation gehören
dann auch noch ein Hilfesystem und ein Installationsprogramm mit grafischer
Oberfläche. Diese Werkzeuge sind meist externe kommerzielle Produkte.

Im Open Source Bereich ist eine Komplettlösung mit nur einem Tool nicht verfügbar.
Deswegen muss eine reine Open Source Lösung mit mehreren aufeinander
abgestimmten Werkzeugen zusammengestellt werden. Dieser Beitrag beschreibt
eine sinnvolle Kombination solcher Werkzeuge, die sich in Praxis mit Erfolg
einsetzen lässt.

2. Anforderungen
Die Anforderungen für die Zusammenstellung einer Reihe von Werkzeugen muss
gewichtet betrachtet werden. Die höchste Priorität bei den Anforderungen haben die
Basiswerkzeuge wie der C/C++ Compiler, die IDE, die GUI-Bibliothek und der GUI
Designer, die die Erstellung einer lauffähigen GUI-Anwendung ermöglichen. Test
Frameworks und Logging Libraries sind in den meisten Fällen externe Bibliotheken,
die als Source Code verfügbar sind. Werkzeuge für die Erstellung von Hilfedateien
und Installations-Routinen sind eigenständige Applikationen. Für die Verwaltung von
Versionen soll ein geeignetes Kontrollsystem zum Einsatz kommen.

© InfraSoft GmbH – Die PROFIS [Link] 1 von 8


Die notwendigen Werkzeuge lassen sich wie folgt aufgliedern:

Basiswerkzeuge:
Integrierte Entwicklungsumgebung (IDE)
C/C++ Compiler/Linker/Debugger
GUI Library oder C++ Application Framework
Resource Compiler
GUI Designer

Zusätzliche (Hilfs-)Bibliotheken:
Test Framework
Logging Library

Zusätzliche Tools:
Help Tool zum Erstellen von Hilfedateien
Installer für die Erstellung von Installationsprogrammen
Versionsverwaltung

3. Basiswerkzeuge
Die Basiswerkzeuge dienen zur Erstellung von Windows-Applikationen mit grafischer
Benutzeroberfläche. Mit diesen Tools lässt sich ohne die Verwendung von
zusätzlichen Bibliotheken und Werkzeugen eine funktionierende Anwendung
erstellen.

3.1. Der GCC Compiler/Linker und Debugger Paket MinGW


Der meist verbreitete C/C++ Compiler im Open Source-Bereich ist der GCC C/C++
Compiler aus der GNU Programmsammlung, die den notwendigen Compiler, Linker,
Debugger und zusätzliche Werkzeuge beinhaltet. Da bei unserem Fall keine Linux-
Kompatibilität (Cygwin) gefordert ist, kann das Toolpaket MinGW (Minimalist GNU for
Windows) zum Einsatz kommen.
MinGW ist eine Sammlung von Windows Header-Dateien und von GNU
Entwicklerwerkzeugen, die die Erstellung von „native“ Windows-Programmen
ermöglichen. Der grundlegende Unterschied zu Cygwin ist, dass die Kompatibilitäts-
DLL bei MinGW nicht benötigt wird.

3.2. Die Enwicklungsumgebung (IDE) Dev-C++


Dev-C++ von Bloodshed Software ist eine freie Entwicklungsumgebung, die für C
und C++ Entwicklungen verwendet wird. Die IDE kann mit den GNU C/C++
Compilern genutzt werden (Cygwin, MinGW). Die Einbindung von sog. DevPaks
ermöglicht die Erweiterung der IDE. Ein DevPak beinhaltet eine Quellcode-Bibliothek
oder auch ein weiteres Werkzeug. Der im Paket enthaltene Package Manager
erlaubt eine bequeme Installation von DevPaks.
Das Dev-C++ Paket enthält u. a. die GCC Tools, einen komfortablen Editor, einen
Projekt Manager, eine grafische Oberfläche für den GCC-Debugger (GDB) und auch
die Makefile-Generierung.

© InfraSoft GmbH – Die PROFIS [Link] 2 von 8


3.3. Die C++ GUI Bibliothek wxWidgets
wxWidgets ist ein plattformunabhängiges C++ Application Framework. Dieses
Framework erlaubt das Erstellen von Windows-Applikationen mit grafischer
Benutzeroberfläche. Die wichtigsten Funktionalitäten decken u. a. folgende Bereiche
ab: Container Klassen, Multithreading, Stream-Klassen und GUI Sizer-Layouts.
wxWidgets ist eine an MFC angelehnte C++ Bibliothek, die einen umfangreichen
Satz von grafischen Komponenten für die Erstellung von Benutzeroberflächen bietet.
Neben den Fenster-, Dialog-, Menü, Toolbar- und System-Steuerungselementen sind
auch komplexere Komponenten wie z.B. Grid, Notebook, List Control und Tree
Control implementiert.

3.4. C++ IDE mit GUI Designer - wxDev-C++


wxDev-C++ ist eine Erweiterung zu der Entwicklungsumgebung Dev-C++. Das
wxDev-C++ Paket beinhaltet alle notwendigen Tools für die Erstellung von Windows-
Anwendungen mit grafischer Benutzeroberfläche. Die Komponenten von
wxDev-C++ sind:
ƒ Dev-C++ IDE
ƒ wxWidgets Application Framework
ƒ MinGW Compiler, Linker, Debugger und GCC-Tools
ƒ Form Designer für den Entwurf von grafischen Komponenten
Projekte für Konsolen-Applikationen, statische und dynamische DLLs bzw. Dialoge
und Frames mit wxWidgets können sehr schnell erstellt werden. Für das Editieren
steht ein vielseitiger Editor zur Verfügung: Syntax Highlighting, Code Completion,
Find & Replace, usw. Integriertes Debugging (GDB) steht zur Verfügung, ebenso wie
das einfache Einbinden von vorkompilierten Add-Ons (DevPaks) durch den Paket
Manager (Package Manager).

4. Zusätzliche Bibliotheken
Die zusätzlichen Bibliotheken werden zur Erweiterung der Basisfunktionalität der
Windows-Anwendung benötigt und helfen bei der Qualitätssicherung der neuen
Software.

4.1. Das Test Framework CppUnit


CppUnit ist ein C++ Unit-Test Framework und wurde nach dem Java-Vorbild JUnit für
C++ implementiert. Das CppUnit Framework ermöglicht aufgrund des Prinzips der
Unit-Tests die Programmierung von Software-Tests für die Programmiersprache
C++. Die Eingaben werden in C++ Dateien geschrieben, Ausgaben gibt es
maschinenlesbar in XML oder mit eigenen GUI-basierenden Programmen zur
schnelleren Übersicht.

4.2. Die Logging Bibliothek Log4cxx


Apache Log4cxx ist eine Portierung des bekannten Logging Framework Log4J.
Log4cxx hat drei Hauptkomponenten: Loggers, Appenders und Layouts. Diese drei
Komponententypen erlauben entsprechend dem Nachrichtentyp und -level die
Kontrolle der formatierten Ausgabe der Logging Daten.
Log4cxx erlaubt das Logging zur Laufzeit ohne eine Änderung des Applikationscode.
Auch ohne die Änderung des binären Code kann das Verhalten des Logging durch
das Editieren einer Konfigurationsdatei modifiziert werden.

© InfraSoft GmbH – Die PROFIS [Link] 3 von 8


5. Zusätzliche Tools
Bei diesen Werkzeugen handelt es sich um Anwendungen, die Dokumentationen für
Entwickler und Benutzer generieren, eine schnelle und kundenfreundliche Installation
ermöglichen bzw. die verschiedenen Versionen während der Entwicklungsphase
verwalten.

5.1. Software Dokumentationstool Doxygen


Doxygen ist ein bekanntes Open Source Software-Dokumentationstool. Doxygen
dient zur automatischen Erzeugung von Dokumentationen, die die Objekte und die
Zusammenhänge zwischen diesen Objekten beschreiben und grafisch darstellen.
Im Quellcode werden spezielle Dokumentations-Blöcke gesetzt, die von Doxygen als
Kommentar erfasst werden. Mit diesem Tool werden drei Ziele der Software-
Dokumentation realisiert: das generierte Dokument dient als Design-Dokument,
Tutorial und auch als Referenz-Handbuch.
Als Quelle für die Generierung von Dokumenten dienen die C/C++ Quelldateien. Mit
der Applikation Doxywizard kann der Benutzer über eine grafische Benutzerober-
fläche Einstellungen für das Dokumentationsprojekt vornehmen.
Doxygen kann die generierte Dokumentation in verschiedenen Formaten ausgeben,
u.a. HTML, PDF, PostScript, Man, RTF. Für die grafische Darstellung der Klassen-
objekte und deren Hierarchie kann der Entwickler zwischen den eingebauten und
externen Graphen-Generatoren wählen.

5.2. Grafische Visualisierung mit Graphviz


Die Verknüpfungen der Objekte im Quellcode, wie z.B. der Klassenhierarchie kann
durch die Verwendung von externen grafischen Visualisierungsprogrammen
dargestellt werden.
Graphviz ist ein Open Source Programmpaket, das zur Visualisierung von
gerichteten und ungerichteten Graphen dient. Graphviz entnimmt die Anweisungen
für die Beschreibung einer Grafik aus einer Textdatei. Die Knoten und Kanten eines
Graphen werden in der C-ähnlichen Markup-Sprache DOT angegeben.

5.3. Erstellung der Benutzerdokumentation mit HelpMaker


HelpMaker ist eine Freeware-Applikation, um Hilfedateien ohne externen
kostenpflichtigen Texteditor zu erstellen. HelpMaker erstellt Hilfedateien für die
Windows-Plattform in den Formaten WinHelp (.hlp), HTMLHelp (.chm) und RTF. Die
notwendigen Microsoft Hilfecompiler (Help Workshop bzw. HTML Workshop) sind
mitgeliefert und werden mit HelpMaker zusammen installiert und konfiguriert.

5.4. Installationstool InstallJammer


InstallJammer ist eine freie Software für die Erstellung von Installationspaketen, die
unter Windows und vielen Unix/Linux-Versionen laufen. InstallJammer ist eine
Applikation mit grafischer Benutzeroberfläche, die neben einer schnellen (Install
Fast) auch eine schrittweise (Install Step-by-Step) Installation unterstützt.
InstallJammer erstellt eine einzige Exe-Datei, die auch für die webbasierte
Distribution bestens geeignet ist. Neben der großen Konfigurierbarkeit wird ein
Uninstaller automatisch generiert. Charakteristisch ist auch die Möglichkeit von
mehrfachen Installation Themes und von Testläufen mit Debug-Fenster.

© InfraSoft GmbH – Die PROFIS [Link] 4 von 8


5.5. Versionsverwaltungssystem Subversion
Apache Subversion (SVN) ist eine Open Source Software für die Versionsver-
waltung. Im Gegensatz zu CVS implementiert Subversion ein „virtuelles“
kontrolliertes Dateisystem, das Dateien und Verzeichnisse kontrolliert. Subversion
versioniert Verzeichnisse.
Die Änderungen werden immer komplett im Projektarchiv abgespeichert, damit eine
logische Einheit der Modifikationen gebildet werden kann.

5.6. Subversion Client TortoiseSVN


TortoiseSVN ist ein Subversion-Client, der sich nahtlos in die Windows Shell (den
Windows Explorer) einfügt. TortoiseSVN wurde als Erweiterung des Windows
Explorers entwickelt und die Funktionalität steht als Kontextmenü jederzeit zur
Verfügung.
Der Status jeder Datei unter der Versionskontrolle wird durch ein kleines
überlagertes Symbol angezeigt. Auf diese Weise kann man sofort den Zustand der
Arbeitskopie erkennen.
Die Subversion-Befehle sind über das Kontextmenü des Windows Explorers
erreichbar, wo während der Installation von TortoiseSVN ein eigenes Untermenü
eingefügt wird.

6. Installation und Konfiguration der Werkzeuge


Da jedes Open Source Tool von verschiedenen Entwicklergruppen stammt, sind die
Installations- und Konfigurationsmöglichkeiten der einzelnen Produkte sehr
unterschiedlich. In den meisten Fällen genügt eine sequenzielle Installation der
Komponenten mit anschließender Konfiguration. Bei unserem Toolpaket ist diese
Vorgehensweise nur durch ein kleines kundenfreundliches Administrationstool
realisierbar.

Die meisten der zu installierenden Open Source Produkte benötigen eine


anschließende Konfiguration des installierten Produktes und Änderung von
Betriebssystemeinstellungen bzw. anschließende Abstimmung der Konfigurationen
der installierten Produkte zueinander.

Eine professionelle Variante ist für die Installation und Konfiguration eines Open
Source Toolpaketes ist die Verwendung eines eigenen Administrationstool. Mit Hilfe
dieses Werkzeuges verschafft der Benutzer des Toolset einen Überblick über die
Komponenten des Paketes, kann Konfigurationen ändern, neue Updates installieren
oder das System am Ende des Lebenszyklus sauber entfernen.

In der Abbildung auf der nächsten Seite sind die wichtigsten Komponenten des
entstandenen C++ GUI Toolset dargestellt.

© InfraSoft GmbH – Die PROFIS [Link] 5 von 8


7. Nutzen
Durch den Einsatz von Open Source Software kann man die Vorteile von Standard-
und Individual-Software kombinieren, ohne die entsprechenden Nachteile in Kauf
nehmen zu müssen. Einige wichtige Argumente, die für eine Open Source Lösung
sprechen, sind:
Unabhängigkeit – Mit einem Open Source Produkt ist man nicht von einem
einzelnen Softwarehersteller abhängig.
Qualität – Die meisten Open Source Produkte sind stabile und getestete Lösungen.
Geringe Lizenzkosten – Open Source Produkte haben keine oder minimale
Lizenzkosten.
Erweiterbarkeit - Die meisten Open Source Lösungen lassen sich dank der
Verfügbarkeit des Source Code einfach erweitern.
Interoperabilität - Open Source Lösungen setzen konsequent auf offene Standards,
so dass das Zusammenspiel verschiedener Produkte wenig Probleme verursacht.

© InfraSoft GmbH – Die PROFIS [Link] 6 von 8


8. Unterstützung durch InfraSoft
Das vorgestellte C++ Toolpaket stellt eine kostengünstige, schnell realisierbare und
professionelle Lösung für eine komplexe Entwicklungsaufgabe dar. Open Source
Lösungen mit Toolpaketen, die auf innovativen Basistechnologien basieren, werden
auch bei der Firma InfraSoft angeboten.

InfraSoft verwendet eigene Toolpakete für die Entwicklung komplexer Software-


Lösungen. Zur Lösung spezieller Probleme von Kunden können neue Toolpakete
entwickelt und erstellt werden. Diese Software-Werkzeuge basieren auf Open
Source Basistechnologien, wie Eclipse, GNU, Mozilla, MySQL, Linux, OpenOffice,
Apache und Zope. Bei diesen Werkzeugpaketen kann InfraSoft die Aufgaben der
Installation und Konfiguration der Produkte bzw. die Einschulung und Betreuung der
Entwickler übernehmen.

Ergänzend zu diesem Text steht Ihnen auf der InfraSoft Website ein Glossar
zur Verfügung, in dem Sie die meisten der hier verwendeten Begriffe finden.
Über das aktuelle Angebot an weiteren, kostenlosen Fachbeiträgen zur
Softwareentwicklung informieren Sie sich bitte unter [Link]/service.

Beachten Sie auch die Literatur- und Download-Liste im Anhang.

[Link]. Gyula Juhasz


Wien, im Oktober 2006

Der Autor ist Mitarbeiter der InfraSoft, einem Unternehmen, das auf komplexe
Softwareentwicklungen spezialisiert ist. Die Experten der InfraSoft haben langjährige
Erfahrungen in der Entwicklung und verfügen über fundierte Kenntnisse in Design,
Analyse, Realisierung, Test und Projektmanagement.
Für individuelle Beratungen zur Entwicklung von Softwarelösungen und die
Bereitstellung von Realisierungsteams wenden Sie sich bitte an info@[Link].

© InfraSoft GmbH – Die PROFIS [Link] 7 von 8


Anhang: Literatur und Downloads
Minimalist GNU C++ Compiler für Windows
[Link]

GNU Compiler Collection Homepage


[Link]

wxWidgets Application Framework


[Link]

Bloodshed Software Dev-C++ IDE


[Link]

wxDev-C++ - Dev-C++ Erweiterung


[Link]

DevPaks Resourcen
[Link]

CppUnit - C++ Unit-Test Framework


[Link]

Apache Log4cxx – C++ Logging Bibliothek


[Link]

Doxygen – Software-Dokumentationswerkzeug
[Link]

Graphviz – Visualisierungs-Software für Graphen


[Link]

Vizacc HelpMaker - Hilfedateierstellung


[Link]

InstallJammer - Multiplattform-Installer
[Link]

Subversion - Version Control System


[Link]

TortoiseSVN - Subversion Client


[Link]

© InfraSoft GmbH – Die PROFIS [Link] 8 von 8

Das könnte Ihnen auch gefallen