Programmieren: SDL & wxWidgets

SDL Pixel-Grafik-Programmierung

SDL ist eine portable (Windows, Linux, Mac, ...) C-Bibliothek zum Anzeigen von Grafiken auf Pixel-Ebene.

Wir greifen in unseren Übungsprogrammen allerdings nicht direkt auf die SDL zu: Ich stelle zwei Files sdlinterf.h und sdlinterf.c zur Verfügung. Diese enthalten die Grafik-Funktionen, die wir verwenden, und rufen intern die SDL auf.

... für die DHGE

Wie man damit unter CodeBlocks ein SDL-Programm zum Laufen bringt, ist in dieser Installationsanleitung (DHGE) beschrieben.

Ein .exe-File, der mit CodeBlocks gemäß dieser Installationsanleitung DHGE erstellt wurde, kommt zur Laufzeit ohne SDL2.dll aus (im Unterschied zur NTA-Variante) und kann daher auch ohne SDL-Installation in andere Verzeichnisse oder auf andere Rechner kopiert und dort ausgeführt werden.

Hier gibt es ein kleines Demo-Programm, mit dem man das Anlegen und Ausführen eines SDL-Projektes testen kann: demo0.c

... unter Linux oder macOS

... für die NTA

Die SDL ist an der NTA in den Rechnerräumen unter Windows nicht vorinstalliert. Wir kopieren sie daher lokal zur jeweiligen Übung dazu. Für DevCpp habe ich folgendes Zip-File gebastelt, das nach dieser Installationsanleitung (NTA) zu verwenden ist.

Auf der SDL-Download-Page gibt es auch ein Paket für Microsoft Visual Studio (wir brauchen die "Development Libraries", nicht die "Runtime Binaries").

Achtung:

Mein SDL-Zip-File für DevCpp enthält die 32-bit-Version der SDL!

Die 32-bit-Version funktioniert auch mit einem 64 bit Windows, aber man muss im DevCpp den 32 bit Compiler ("MinGW32") verwenden, nicht den 64 bit Compiler ("TDM-GCC x64") .

Kommen seltsame Fehler vom Linker ("... skipping ..."), passen Compiler und SDL-Version vermutlich nicht zusammen.

Ich habe auch einen Zip-File mit 64-Bit-SDL für DevCpp gebastelt, aber er ist nicht getestet.

Achtung:

Ich habe im Sommer 2014 von SDL Version 1.x auf Version 2.x umgestellt!

An unseren Programmen bzw. Musterlösungen ändert sich dadurch nichts, aber sdlinterf.c, mein Zip-File und die Installation haben sich verändert.

(Hier gibt es noch den alten Zip-File und die alte Installationsanleitung mit Version 1.2 der SDL.)

Für .exe-Files vom DevCpp, die ohne separate SDL2.dll laufen sollen:
libSDL2-32.a oder libSDL2-64.a (siehe Installationsanleitung NTA, letzte Seite!)

Input bei Verwendung von sdlinterf

... siehe hier!

wxWidgets GUI-Programmierung

wxWidgets ist eine portable (Windows, Linux, Mac) GUI-Klassenbibliothek für C++.

Webseite von wxWidgets:

Das ist mein wxWidgets-"Hello"-Programmbeispiel: wxw-hello.cpp

WxWidgets unter Windows

Sich einfach das WxWidgets-Setup für Windows von der WxWidgets-Homepage runterzuladen,
ist aus zwei Gründen eine ganz schlechte Idee:

Seit neuestem gibt es hier fertig kompilierte Libraries
für Dev-C++ (gcc oder gccTDM) und Microsoft Visual Studio (vc).
Zusätzlich braucht man noch die Header-Files (siehe README).

Diese Anleitung für CodeBlocks (DHGE) beschreibt alles Nötige.
Die Anleitung für Dev-C++ (NTA) ist etwas älter und nicht mehr gepflegt.

 
Home