Les bases
Introduction
Windows est une interface graphique qui permet d'utiliser le multitâche sur un PC. Plusieurs programmes peuvent alors être lancés simultanément et ils ne devront pas embêter leurs petits camarades. Pour y parvenir, chaque programme utilise donc un espace de travail qui lui est propre. Toutes les ressources de la machine seront partagées entre eux et ce sera à Windows de se débrouiller comme il peut pour permettre au programme d'avoir accès aux différents périphériques sans tout faire planter.
Un programme fonctionnant sous Windows doit rester en dialogue permanent avec Windows car il ne connaît normalement rien de son environnement. Il ne sait pas non plus qu'une application vient d'effacer le contenu d'une de ses fenêtres (parce que l'application a affiché l'une de ces fenêtres par-dessus par exemple). Dans ce cas, Windows ne sauvera pas le contenu de la fenêtre ainsi effacée. Par contre, c'est Windows qui signale au programme qu'il faut redessiner le contenu de la fenêtre. Ou encore que l'utilisateur veut fermer une fenêtre.
Le développement d'un programme sous Windows est donc tout naturellement complètement différent de celui sous DOS...
Le multitâche,
dans les premières versions de Windows n'étaient pas préemptif,
la programmation d'un programme dans ces versions de Windows impliquait de mettre
par endroit des instructions rendant la main à Windows. Windows pouvait
alors passer à l'exécution d'un autre programme. Celà pouvait
produire des impressions de lenteurs de la machine globalement car un programme
pouvait sembler être bloqué lorsque qu'un autre programme effectuait
une boucle sans appel à Windows.
Par contre, Windows NT4, 2000 et XP sont heureusement préemptifs
et à partir de Windows 95 celà sera de même. Cela va simplifier
la programmation !
Concernant le développement sous Windows
Pour développer en C/C++ sous Windows, il y a quelques normes à respecter.
Remarques sur les fonctions Windows.
Tous les programmes Windows doivent inclure le fichier d'en-tête windows.h (qui contient lui-même d'autres fichiers d'en-tête) pour permettre l'utilisation des divers fonctions spécifiques à Windows.
Particularité d'un code en C sous Windows: la fonction WinMain !
Le développement sous Windows est similaire aux autres interfaces graphiques:
- On va tout d'abord se créer une fenêtre.
- Puis on affiche la fenêtre avec tout son contenu.
- On entre dans une boucle d'attente de messages d'événements, d'où on en sortira que lorsque l'utilisateur mettra fin au programme.
- Et cette boucle d'attente de message va ensuite déclencher la procédure de traitement des messages associée à notre fenêtre.
C'est simple non ?
Voici un petit exemple de programme classique pour afficher un texte: "Hello world !". A vous de créer un projet pour une application Windows 32 bits et d'y inclure le code pour pouvoir le compiler et l'exécuter:
Code utilisant la classe standardou
code utilisant la classe étendue
Remarque:
Vous en connaissez suffisament pour débuter DirectX...mais soyons sérieux, vous devriez rapidement revenir par ici, car certaines notions vous seront encore bien utiles pour comprendre certains chapitres de directX (Gestion des évènements par exemple).