Texel |
|
Les bases de la programmation Windows
Introduction Windows est un système d'exploitation graphique et multitâche. La programmation de logiciels sur cet OS nécessite donc quelques notions de l'API WIN32. Cette API contient des fonctions spécifiques à Windows et définit la structure de votre code source.
Ce tutorial n'a pas pour but de faire de vous des as de la programmation sous Windows, mais simplement de vous en faire connaître les bases indispensables pour développer des applications OpenGL ou DirectX. Vous pourrez vous perfectionner en vous baladant sur le net ou dans les librairies. N'hésitez pas à utiliser très souvent les fichiers d'aide de votre compilateur. Si votre compilateur ne le possède pas, procurez-vous le fichier win32.hlp (depuis le site de MinGW) qui contient de nombreuses informations plus qu'intéressantes.
Pour comprendre ce tutorial, vous n'avez pas besoin d'être un expert du langage C, ni de connaître le langage C++. Lorsque vous allez découvrir les codes sources de nos premiers programmes, vous risquez d'être découragé par leur longueur et par le nombre de fonctions, structures et autres variables à connaître. Rappelez-vous que tout est logique et que ça ne sert à rien d'essayer de tout mémoriser : vous n'y arriveriez pas. Développez plutôt votre art du copier coller.
Les compilateurs : Si vous n'avez pas de compilateur Windows, des compilateurs gratuits sont disponibles:
La version gratuite de Visual C++ 6.0, appelée Introductory Edition, est une
version presque complète du compilateur de Microsoft avec EDI (Environnement de
Développement Intégré)(interface graphique, éditeur de texte, assistants à la
création de code…). Malheureusement, la licence vous interdit de distribuer vos
programmes (et le compilateur date un peu).
VisualC++ Toolkit est une version gratuite du compilateur de Visual C++ .net, mais sans EDI (pas d'éditeur de texte, pas d'assistant à la création de code...). La version gratuite de Microsoft Visual C++ .net est appelée VisualC++ Toolkit (disponible sur le site de Microsoft). Ce compilateur n'a pas d'EDI et utilise les bonnes vieilles lignes de commandes. Mais la licence vous permet de distribuer vos programmes. Microsoft Visual C++ 2005 Express Edition est disponible gratuitement sur le site de Microsoft. Cette version contient le compilateur avec l'EDI et la licence vous permet de distribuer vos programmes. Microsoft Platform Software Development Kit est nécessaire pour VisualC++ Toolkit et Microsoft Visual C++ 2005 Express Edition (à télécharger sur le site de Microsoft). La version gratuite de Borland C++ Builder 5 est appelée Borland C++ Compiler 5.5 (disponible sur le site d'Inprise). Ce compilateur n'a pas d'EDI et utilise les bonnes vieilles lignes de commandes. La licence vous permet de distribuer vos programmes. Il ne faut pas non plus oublier GCC sous Windows. Plusieurs versions sont disponibles: DJGPP, MinGW et LCC-Win32 sont les plus connus. LCC-Win32 est fournit avec un environnement de développement. Personnellement, je préfère MinGW et son EDI DevC++ mais il y a aussi d'autres EDI pour MinGw. Configuration de Visual C++ 2005 Express Edition : Avec Visual C++ tout comme pour gcc sous linux, il y a deux choses à savoir pour pouvoir compiler des programmes qui nécessitent l'utilisation de certaines librairies.
Premièrement, vous devez linker les librairies que vous utilisez. Par défaut, Visual en link quelques unes pour vous, mais pas toutes. Les programmes simples peuvent donc être directement compilés en appuyant sur la touche F7. Pour les autres, vous devez les linker de la façon suivante: Deuxièmement, si vous voulez utiliser une librairie qui n'était pas présente à l'origine dans les répertoires de Visual ( Ex: la dernière version de DirectX), vous n'êtes pas obligé de mettre toutes les librairies et les headers dans les répertoires de Visual. Copiez les dans le répertoire de votre choix et configurez Visual de cette manière: Configuration de Visual C++ 6 : Avec Visual C++ tout comme pour gcc sous linux, il y a deux choses à savoir pour pouvoir compiler des programmes qui nécessitent l'utilisation de certaines librairies.
Premièrement, vous devez linker les librairies que vous utilisez. Par défaut, Visual en link quelques unes pour vous. Les programmes simples peuvent donc être directement compilés en appuyant sur la touche F7. Lorsque vous utilisez des librairies légèrement moins courantes, vous devez les linker de la façon suivante: Deuxièmement, si vous voulez utiliser une librairie qui n'était pas présente à l'origine dans les répertoires de Visual ( Ex: la dernière version de DirectX), vous n'êtes pas obligé de mettre toutes les librairies et les headers dans les répertoires de Visual. Copiez les dans le répertoire de votre choix et configurez Visual de cette manière: Configuration de DevC++ :
Avec DevC++ tout comme pour gcc sous linux, il y a deux choses à savoir pour
pouvoir compiler des programmes qui nécessitent l'utilisation de certaines
librairies.
Premièrement, vous devez linker les librairies que vous utilisez. Par défaut, DevC++ en link quelques unes pour vous. Les programmes simples peuvent donc être directement compilés en appuyant sur la touche F7. Lorsque vous utilisez des librairies légèrement moins courantes, vous devez les linker de la façon suivante: Deuxièmement, si vous voulez utiliser une librairie qui n'était pas présente à l'origine dans les répertoires de DevC++ ( Ex: la dernière version de GTK), vous n'êtes pas obligé de mettre toutes les librairies et les headers dans les répertoires de DevC++. Copiez les dans le répertoire de votre choix et configurez DevC++ de cette manière: Note sur le compilateur Borland C++ compiler 5.5: Pour compiler un programme en mode fenêtre, utiliser la ligne de commande -tW (Ex: bcc32 -tW toto.c). Rajoutez la ligne suivante au début du fichier qui contient votre fonction WinMain (cf. chapitre I ) et ne vous inquiétez pas pour les warnings:
Pour linker des librairies, rajoutez simplement le nom des librairies à la suite de la ligne de commande de compilation. Exemple pour une application DirectDraw avec DirectInput:
Pour plus d'infos sur ce compilateur, allez sur le site http://www.developpez.com |