Texel
Win32 | Index | Contact

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:

  • Ouvrez le projet de votre programme.
  • Cliquez sur "project" dans le menu, puis "Nom_du_programme Properties...".
  • Dans la partie gauche du panneau qui s'ouvre, cliquez sur "Configuration Properties"->"Linker"->"Input".
  • Ajoutez dans "Additionnal Dependencies" les ".lib" que vous utilisez. Puis cliquez sur Ok. Ex: User32.lib et Gdi32.lib.

    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:

  • Cliquez sur "Tools" dans le menu, puis "Options".
  • Dans le Navigateur de gauche, cliquez sur "Projects and Solutions"->"VC++ Directories".
  • A droite, choisissez à tour de rôle "library files" et "Include files". Pour chacun d'entre eux, ajoutez dans la fenêtre du dessous, le chemin des répertoires qui contiennent les fichiers des librairies et des headers. Il faut parfois tenir compte de l'ordre d'apparition des répertoires dans la liste lorsque deux d'entre eux possèdent les mêmes librairies. Ainsi, si vous installez le SDK 9 de DirectX, mettez les répertoires de ses librairies en haut de la liste. Dans le cas contraire, Visual utilisera les librairies qu'il possède par défaut (si il en a).


  • 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:

  • Ouvrez le projet de votre programme.
  • Cliquez sur "project" dans le menu, puis "settings".
  • Dans la partie droite du panneau qui s'ouvre, cliquez sur l'intercalaire "link".
  • Dans le champ "Object/library modules", ajoutez au debut ou à la fin de la liste, le nom et l'extension ".lib" de la librairie que vous utilisez. Puis cliquez sur Ok.

    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:

  • Cliquez sur "Tools" dans le menu, puis "Options".
  • Cliquez sur l'intercalaire "Directories"
  • Dans le panneau déroulant "Show directories for:", choisissez à tour de rôle "library files" et "Include files". Pour chacun d'entre eux, ajoutez dans la fenêtre du dessous, le chemin des répertoires qui contiennent les fichiers des librairies et des headers. Il faut parfois tenir compte de l'ordre d'apparition des répertoires dans la liste lorsque deux d'entre eux possèdent les mêmes librairies. Ainsi, si vous installez le SDK 9 de DirectX, mettez les répertoires de ses librairies en haut de la liste. Dans le cas contraire, Visual utilisera les librairies qu'il possède par défaut (DirectX 5 je crois).


  • 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:

  • Ouvrez le projet de votre programme.
  • Cliquez sur "projet" dans le menu, puis "Options du Projet".
  • Dans le panneau qui s'ouvre, cliquez sur l'intercalaire "Paramètre".
  • Dans le champ "Editeur de liens", ajoutez les librairies que vous utilisez avec le bouton "Ajouter fichier".
  • Puis cliquez sur Ok.

    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:

  • Cliquez sur "Outils" dans le menu, puis "Options du Compilateur".
  • Dans le panneau qui s'ouvre, cliquez sur l'intercalaire "Répertoires".
  • Dans l'intercalaire "Répertoires Bibliothèques", ajoutez des répertoires de vos fichiers .a.
  • Dans l'intercalaire "Répertoires C++ .h" (ou "Répertoires C .h"), ajoutez des répertoires de vos fichiers .h.
  • Puis cliquez sur Ok.


  • 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:

    #pragma argsused



    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:

    bcc32 -tW dx7.cpp uuid.lib dxextra.lib ddraw.lib dinput.lib
    



    Pour plus d'infos sur ce compilateur, allez sur le site http://www.developpez.com



    Version originale: Fevrier 2001
    Dernière mise à jour: Mai 2006
    Par Grégory Smialek
    www.texel.fr.fm