Programmer en 'C' sous Windows.
Tutorial.

Lesson 01 Sommaire des publications Page d'accueil du site VB-AUDIO Audio Mechanic and Sound Breeder
Langage : Anglais Langage : Francais

Programmer en 'C' sous Windows
Les pages qui suivent se proposent de présenter des exemples de code-sources commentés, permettant d'apprendre les bases de la programmation sous Windows en 'C' de manière autodidactique et progressive.

Pour approfondir le sujet, je ne saurais trop vous recommander la lecture assidue du fameux "Programming Windows" de Charles Petzold (si vous avez la chance d'en trouver un exemplaire) et de vous habituer à parcourir la documentation Microsoft de référence : le MSDN qui dans sa version 2 est relativement mal fichue. Si vous pouvez vous procurer la version MSDN 1 à installer sur votre ordinateur, n'hésitez pas car elle est plus pratique. Le newsgroup fr.comp.os.ms-windows.programmation vous permettra aussi de trouver bon nombre d'informations sur le sujet, notamment dans ses archives disponibles sur google.


Description
Leçon 1 Ma première application Windows (Programme minimal).
Leçon 2 Les bases de l'affichage et de la gestion souris sous Windows.
Leçon 3 Les contrôles Windows basiques (Edit Box, Bouton, List, Popup Menu...).
Leçon 4 Je fais mon premier contrôle Windows.
Leçon 5 La boite de dialogue modale.
Leçon 6
-
-
-
-


Compiler les sources 'C' sous Windows
Pour fabriquer un programme sous Windows en 'C' vous devez écrire généralement au moins 3 fichiers textes (.h, .c et .rc) contenant 3 types de scriptes : Le .h qui peut contenir des prototypes de fonctions et des définitions 'C' (type, enum etc…) ou 'macro' pour le pré-processeur (#define). Le .c qui constitue le code source écrit en langage 'C' et Le .rc qui contient un script permettant d'intégrer à l'exécutable des ressources (des données, icones, images bmp etc…). Le langage 'C' est relativement standardisé mais le pré-processeur et le compilateur de ressource sont spécifiques à la plate-forme de développement. Cependant, on fera en sorte de rester compatible avec le plus grand nombre d'outils de développement, de VC6 à VC2008 en passant par les outils Borland, en utilisant des instructions et formalismes les plus communs.

Pour compiler les sources 'C', créez un projet vide (Simple Application WIN32) et incluez les divers fichiers de l'exemple (MinPrg.h, MinPrg.c, MinPrg.rc). Compile & Run.

How To Produce EXE File From C Source Code

Sous VC2005 : assurez vous d'avoir la configuration suivante :
- Configuration Properties / General : Char Set = NOT SET
- Configuration Properties / C/C++ / Preprocessor : _CRT_SECURE_NO_DEPRECATE



Linker pour Windows
Une fois la compilation faite (la compilation est le processus qui transforme un code source écrit dans un langage "humain" en langage assembleur puis en code machine compréhensible par le processeur), Le linker a pour rôle de fabriquer un exécutable (un programme) à partir du produit de cette compilation en faisant, entre autres choses, les liens avec les références externes (tout ce qui n'est pas définit dans notre source mais auquel on fait référence). En effet dans notre programme, nous faisons souvent appel à des API Windows, c'est à dire des fonctions du système. Et bien le linker doit faire en sorte que ces appels arrivent aux bonnes fonctions, et que l'exécutable face référence aux bonnes DLL.

Un programme Windows utilise généralement 3 DLL systèmes (au moins) : Kernel32, User32 et GDI32 et votre linker aura besoin de faire référence à ces 3 DLL pour pouvoir linker notre premier exemple de programme (le second aussi). Si vous utilisez un IDE avec lequel vous avez créé un projet "Win32 Application" ces DLL sont déjà dans les options du linker : kernel32.lib user32.lib gdi32.lib - ici les LIB sont des dictionnaires contenant une liste de références aux fonctions de chaque DLL associées, mais ne comportent aucun code exécutable. C'est pourquoi on parle de Lien "Dynamique", d'ailleurs DLL signifie 'Dynamic-link library'. Pour Editer les références (liens) d'un programme compilé (un EXE ou une DLL) je vous invite à utiliser le "Dependency Walker" qui vous dira quelles DLL l'exécutable utilise, quelles fonctions ? s'il en exporte etc...


Questions et Commentaires...
N'hésitez pas à me contacter par e-mail ( ) pour toutes questions ou remarques susceptibles de m'aider à clarifier, corriger ou étoffer ce tutorial, chaque page contenant une section 'Questions/Réponses' que je fais évoluer au fil du temps et des questions qui m'arrivent.

Lesson 01 Sommaire des publications Page d'accueil du site VB-AUDIO

Copyright V.Burel ©2008. Tous droits réservés. Toute spécification technique et toute information produits, spécifiées dans ce site web peuvent subir des modifications sans préavis.