Dit is een archief-pagina

Dit is een archief-pagina. Ik werk deze pagina niet meer actief bij.
Informatie kan verouderd zijn, en links lopen mogelijk dood.
Maar, misschien heeft iemand er nog wat aan.


'C' onder Windows

Voor velen onbekend: ook de compiler van Visual C++ 2008 (Visual C++ Express edition) is gratis te downloaden van Microsoft. Een hobby-versie, maar zo te zien (niet getest) behoorlijk compleet.

Ook andere gratis Visual Express 2008 producten, als C# en Basic, zijn hier te vinden.

Tegenwoordig gebruik ik voor Windows de ook Nederlandstalige Bloodshed Software - Dev-C++ versie 5 (bijgewerkt via web-update naar 4.9.9.2). Een prima, vrij verkrijgbare, IDE (geïntegreerde ontwikkel-omgeving). Editor, project beheer, compilatie, debugging, alles in een. Versie 5 heeft een mooie 'object browser', moeilijk woord, maar hierdoor kan je makkelijk naar bijvoorbeeld de source van een bepaalde routine toe kan in de editor, zonder door de hele file te hoeven zoeken (gewoon op de naam klikken in de lijst met je functies).

Windows'95 gebruikers: let op, versie 5 heeft problemen op Windows 95 (door een bug in Windows), blijf hier versie 4 gebruiken (is ook nog te downloaden). Windows'98.ME en verder kan wel de nieuwe versie gebruiken.

Dev_C++ werkt standaard met de MinGW versie van de GNU GCC compiler, en wel met versie van GCC 3.4.2 als je de laatste versie hebt gedownload (ook verkrijgbaar met de 'oude' GCC 2.95.3). Heb je een eerdere versie, dan kan je met Tools/check for updates de nieuwe compiler binnenhalen. MingW (Minimalistic Windows of zo) maakt direct gebruik van de Windows runtime libraries. Ook heb je hier verder niets te maken met Linux/UNIX-achtige shells etc, gewoon vanuit Windows.

Meer recentere GCC?

MinGW is niet de meest recente versie van GCC. Om echt leading edge te zijn; kijk eens naar TDM's GCC/mingw32 Builds, MinGW functionaliteit maar met de laatste GCC compiler (nu GCC 4.4.0).

Dit in contrast met de andere bekende poort van GCC voor Windows: de Cygwin poort. Cygwin is beter volgens de POSIX standaard (doet een betere taak voor UNIX programma's), maar heeft altijd een grote extra dll nodig om die standaard goed te implementeren. Dat vind ik niet leuk voor bijvoorbeeld spelletjes; je moet die grote dll altijd meeleveren. Voor MingW is dat niet het geval! Tip: er is overigens bij MingW ook een UNIX-achtige command window te downloaden (MSYS, implementeert de Bourne shell 'bsh'), handig voor mensen die software vanaf bijvoorbeeld Linux (met bijhorende makefiles) willen vertalen. Maar niet mijn smaak.

Nog een gratis C en C++ omgeving voor Windows: Code::Blocks. Een gratis IDE, die als onderliggende compiler ook weer GCC kan gebruiken (maar waar je ook andere compilers in kan hangen). Voordeel: met de MingW versie van GCC schijn je je ook de uitbreidings-packages van Dev_C++ hier te kunnen gebruiken. Ook beschikbaar op Linux/Ubuntu!

Installatie

Installeer Dev_C++ (devcpp4992.exe, 12 MB), en start de update manager (in het tools menu) om de laatste versie binnen te halen van Dev_Cpp, de help file, en dergelijke. Bovendien heb ik een aantal helpfiles geïnstalleerd, met name de C Library help (LibC), de Dev_C++ help, en de Win32 help files. Testen: er worden voorbeeldprojecten meegeleverd in de standaard-installatie, goed om even te testen. Bijvoorbeeld 'hello world', de standaard test.

Tegenwoordig gaat het automatisch, met de update manager. Vroeger moest je alles zelf updaten, dat ging zo (voor mensen die per se een oudere versie van MingW er in willen hangen, of bepaalde onderdelen willen vervangen): downloaden, en alles unzippen in de C:\Dev-Cpp directory (of waar je het anders hebt geinstalleerd):

De toen laatste stabiele C compiler, met de C++ uitbreiding en documentatie:
gcc-3.3.1-release_notes.txt
gcc-3.3.1-info-html.tar.gz
gcc-core-3.3.3-20040217-1.tar.gz2.3 Mbyte
gcc-g++-3.3.3-20040217-1.tar.gz 2.3 Mbyte

De runtime routines, en binary utilities (library manager, etc):
binutils-2.13.90-info-html.tar.gz
binutils-2.13.90-20030111-1.tar.gz
mingw-utils-0.3.tar.gz 1.5 Mbyte
mingw-runtime-3.3.tar.gz 0.3 Mbyte

De laatste stabiele make en debugger:
mingw32-make-3.80.0-3.exe
gdb-5.2.1-1.exe

En de Win32 API:
w32api-2.5.tar.gz

En weer even testen: jawel, het werkt nog steeds. Nu eens de uitbreidingen bekijken.

Allegro Library Module

Allegro LogoWat ik in ieder geval wil hebben is de Allegro module (automatisch te downloaden en installeren via de Dev_C++ updater), het pakket dat ik gebruik voor games en graphics programming. Ik gebruik de Allegro game library onder Windows/DirectX; in plaats van zelf de grafische kaart aan te sturen maakt Allegro hier gebruik van DirectX 7. Games in DirectX programmeren zonder iets van windows etc af te weten (zie voorbeeld verderop) !!!! Inclusief voor support van geluid (wave, midi), video (.FLI file), sprites, .... Flitsend snelle games, voor de demo game in 640 x 480 full screen (8 bit color) draai ik zelfs op een oude PC krap 2000 fps...

Na installatie eens testen... hoe doe ik dat, er zijn geen Dev_C++ projecten gedefinieerd. Wel is er de mogelijkheid om met Project, New een Allegro project aan te maken, dat maar eens proberen. Het gebruik van zo'n template is van belang, omdat hierin de benodigde libraries ook geladen worden (linker -lalleg optie). OK, nu de main file vervangen door een van de Allegro demo files, test/gfxinfo en als project saven (in de test directory). Run: niets. Eens kijken wat dat programma behoort te doen: is blijkbaar een console programma (tekst uit). In project/options maar eens Win32 console project in plaats van Win32 GUI project selecteren, en het vanuit een DOS-box draaien --> success! Allegro draait blijkbaar: Allegro graphics info utility 4.0.0, MinGW32. Wel een wat oudere versie, zitten nu meen ik op 4.0.3.

En verder voor Allegro: zie mijn Allegro pagina, of zie mijn 3D pagina voor 3D programmeren met SDL/OpenGL.

Andere nuttige utility: UPX: Ultimate Packer for eXecutables (file compression utility, .exe's en .dll's naar 50%).