Das Buch Coding for Fun mit C++ hat mir beim Schreiben viel Spaß gemacht. Es enthält einige Feierabendprojekte, die Programmierer unterhalten und anregen. Von Lesern weiß ich, dass sie auch Übungsaufgaben und Projekte für Hochschulen aus dem Buch gewinnen.
In einigen der Projekte wird auf klassische Computer wie Apple II, C-64, Amiga oder Atari ST verwiesen, die im Anhang beschrieben werden.
Auf dieser Seite sammle ich Fehlermeldungen und Anregungen von Lesern. Wenn Ihnen also etwas aufstößt, schreiben Sie mir.
Leider ist das Buch im normalen Buchhandel nicht mehr verfügbar. Es gibt aber noch einige Restexemplare, die Sie bei mir direkt oder aber über Amazon bei mir bestellen können.
Listings aus dem Buch
Auf der CD sind alle Quelltexte aus dem Buch zu finden. CDs haben aber die merkwürdige Eigenschaft zu verdunsten, sobald sie einmal der Hülle entnommen wurden.
Programmierumgebung für wxWidgets
Die grafischen Beispiele wurden mit wxWidgets realisiert. Das hat den Vorzug, dass die Programme unter Windows, Mac und Linux laufen. Im Buch hatte ich als grafische Oberfläche Bloodshed-Dev C++ verwendet. Inzwischen gibt es weitere Möglichkeiten:- Sie verwenden nach wie vor Bloodshed-Dev C++. Sie wird allerdings nicht mehr gepflegt und ist so von der Konkurrenz überholt worden.
- Eine schöne Umgebung ist Code::Blocks, die auch plattformübergreifend zur Verfügung steht.
- Die Java-IDE Eclipse bietet auch ein Plugin für die Entwicklung unter C/C++.
- Die Java-IDE NetBeans ist auch mit C/C++-Unterstützung erhältlich.
Konfiguration von Code::Blocks in Windows
Windows: Für Windows ist die Version mit MinGW interessant, weil es bereits den GNU-C++-Compiler enthält.Das Setup-Programm wird gestartet. Die Lizenzbedingungen müssen bestätigt werden. Anschließend mit Next immer weiterlaufen. Dann fragt das Setup, ob die IDE gestartet werden soll.
Beim ersten Start stellt die IDE fest, dass sie den GNU-GCC-Compiler an Bord hat. Das wird mit Ok bestätigt.
Nach File-New-Project: In der Auswahl der Projekte erscheint auch die Möglichkeit, eine wxWidget-Anwendung zu schreiben. Allerdings muss zuvor das wxPack installiert werden.
Für Windows empfielt sich das wxPack, in dem bereits alle Librarys für die verschiedenen Entwicklungsumgebungen vorgepackt sind. So müssen die wxWidgets nicht komplett übersetzt werden. Das enthält die Libs für MinGW oder auch für Visual Studio. Zunächst muss es heruntergeladen werden.
Das Paket wird zur Installation gestartet. Dabei bietet es an, fertige Binarys für Visual Studio (32- und 64-Bit) zu installieren und für MinGW. Wir brauchen nur letzteres und können die anderen abwählen.
Es schlägt den Verzeichnisnamen wxPack vor (der sich im Programme-Ordner befindet).
Als Zielverzeichnis wird C:\SourceCode\Libraries\wxWidgetsx.y (je nach Version)
vorgeschlagen.
Danach wird entpackt und schließlich der Vollzug gemeldet.
Nun wird der Code::Blocks gestartet. Mit File-New-Project wird ein wxWidget-Projekt gewählt. Hier gibt man die Version von wxWidget an. Im nächsten Bildschirm den Projektnamen. Dort muss man vor allem das Verzeichnis angeben, in dem das Projekt liegt, sonst ist dieses vielleicht schreibgeschützt.
Schließlich will die IDE wissen, wo wxWidgets installiert wurde.
Hinter base wird der Button mit den Punkten angeklickt und dann das Verzeichnis C:\SourceCode\Libraries\wxWidgetsx.y ausgewählt, was zuvor die wxWidgets-Installation vorgeschlagen hatte.
Wenn man nicht explizit ein leeres Projekt anfordert, erhält man bereits einen Programmrahmen für ein wxWidgets-Programm.
Build-Build übersetzt das Programm. Build-Run startet es.
Falls die wxPack-Version mit einer anderen GNU-Compiler-Version erstellt worden ist, erscheint der Fehler undefined reference to _Unwind_Resume. Dann muss die wxWidget-Bibliothek aus den Sourcen neu erstellt werden.
Linux-Entwicklungsumgebung
Linux-Benutzer haben es wieder einmal am einfachsten. Sie können sowohl den Code::Blocks als auch das wxWidgets-Paket direkt aus ihrem Software-Center installieren lassen. Hier passen Compiler und Bibliotheken immer zusammen.Kapitel 3: Pfadfinder
Einige Compilern beklagen sich, weil LONG_MAX und exit nicht deklariert seien. In diesen Fällen hilft es, wenn man zu den Include-Anweisungen noch die folgenden Zeilen hinzufügt:#include <climits> #include <cstdlib>