Home

History

Blog

'C' Lesson

<<

>>


Programmer en 'C' sous Windows
Introduction et prérequis

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 aux derniers Visual Studio 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 et suivants: 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...







Contact Us!

Privacy Policy

Social Network:
VB-Audio On Facebook
VB-Audio On Instagram
VB-Audio On Twitter
VB-Audio On Youtube

VB-Audio Forums
VB-Audio Discord Server
Voicemeeter on Reddit



Audio Apps:
VB-Cable
Hi-Fi Cable & ASIO Bridge
Voicemeeter
Voicemeeter Banana
Voicemeeter Potato
VBAN Protocol & Tools
Spectralissime
VB-Audio Matrix

About Donationware model...
About Licensing / Distribution...



Other web sites:
VOICEMEETER.COM
SPECTRALISSIME.COM
DOWNLOAD.VB-AUDIO.COM

Freeware:
LF-Generator
TimeCalc
FFX-4

About us:
Our history / Blog



Audio Pro:
MT32-Splite
MT64-Standard
MT128-Pro
MT128-Integration
WWW.MT128.COM

Buy Online:
VB-Audio WebShop
General Terms
Last Newsletter



Copyright V.Burel ©1998-2023. All rights reserved. All technical specifications and any informations of the products specified on this web site may be subject to change without notice.