Programmation en ANSI C sous Windows avec les API WIN32


When I find my code in tons of trouble,
Friends and colleagues come to me,
Speaking words of wisdom:
"Write in C."
Compilateur gratuit suggéré

Pour commencer, vous avez besoin d'un compilateur. Pas besoin de se ruiner en achetant celui de Microsoft ou de Borland. Celui que j'utilise est très robuste, gratuit et sans royautés, même pour un usage commercial. Il s'agit de LCC-Win32 de Jacob Navia (Un français en plus). Il est disponible à l'adresse suivante : http://www.cs.virginia.edu/~lcc-win32/index.html

À mon avis, il fait un boulot aussi bon que les gros canons commerciaux gobeurs de mémoires et surtout d'espace-disques.

Vous trouverez également sur ce site un guide d'utilisation et de la documentation incluant celle sur les API (Application Programming Interfaces) de Windows (essentiel). La documentation des API en format HLP de Windows est également disponible ici (13 Mo).

Sites Internet

Les sites web sont évidemment des incontournables lorsqu'il s'agit de trouver des exemples et de la documentation. Bien que plusieurs ne semblent qu'être des panneaux publicitaires, il y en a quand même quelques uns qui sont des plus intéressants.

Au sommet de l'échelle, il y a la librairie MSDN de Microsoft avec une attention toute spéciale pour le "Platform SDK". Bien que ce site soit un peu lourd à naviguer (surtout pour les plus modemiques d'entre nous), il constitue la référence principale car la norme des API WIN32 est définit par ce site. Donc rendons à Bill Gates ce qui revient à Bill Gates.

Un site très intéressant en ce qui concerne le compilateur LCC-Win32 déjà suggéré précedemment est celui de John Findlay.

Un autre quasi-incontournable est CodeGuru. On y trouvera des centaines d'exemples qui sauront agrémenter vos projets.

La FAQ MFC est également un lien intéressant pour les francophones. Bien que ce site soit axé sur les MFC, il y a beaucoup d'enseignement à en tirer.

Forum de discussion (Newsgroup) Usenet

Les forums de discussion sont probablement la meilleure source d'informations pour des questions précises. S'agit de respecter l'étiquette. Voici les quatre essentiels :

Il y en a d'autres, plus spécialisés, mais ces quatre groupes sont à mon avis suffisant pour commencer. Si vous n'avez pas un accès direct à ce type de ressource, vous pouvez utilisez Google Groupes pour y accéder.

Bouquins de références

Lorsque l'on parle de programmation Windows, on ne peut passer sous silence la "Bible" de référence de Charles Petzold, Programming Windows. Disponible en français, cet ouvrage constitue un "must" pour toutes personnes voulant débuter dans la programmation Windows en C.

Il faut malheusement noter que les nouvelles éditions de certains de ces livres ont tendance à mettre l'accent sur le C# et le .NET (nouvelles normes de Microsoft). Les ancienne éditions sont donc parfois plus utiles.

Voici une bibliographie (non-exhaustive) d'ouvrages suggérés dans le domaine :

Jean-Luc Luczak
Guide P.S.I du Programmeur en C, Édition P.S.I.
Note: Pas Windows, mais très utile pour les librairies C standards
Al Kelley and Ira Pohl
A Book on C, The Benjamin Cummings Publishing Companies
Note: Mon préféré pour la programmation en C. Plusieurs ré-éditions
Charles Petzold
Programming Windows, Microsoft Press
Note: Essentiel pour débuter en programmation Windows. Plusieurs ré-éditions en français et en anglais
Brent E. Rector and Joseph M. Newcomer
Win32 Programming, Addison-Wesley
Note: Un peu lourd à digérer, mais utile
Richard Simon
Microsoft Windows 2000 API SuperBible, Sams Publishing
Note: Mon autre essentiel en programmation Windows
Anthony Jones and Jim Ohlund
Network Programming for Microsoft Windows, Microsoft Press
Note: Bon bouquin pour ceux intéressés par la programmation réseau

Pour terminer

Je ne me considère pas comme un programmeur professionnel. Dans la vie je suis administrateur de systèmes dans un environnement Windows, mais pas un programmeur. Par contre, j'aime bien programmer pour régler un besoin précis que les tiers-partis ne peuvent pas régler.

J'ai commencé par le GW-BASIC (ça venait avec le MS-DOS voilà très longtemps), puis j'ai appris le Pascal pour en venir finalement au C plus tard dans mes études. J'ai aussi fait du C++, mais pour en venir à la conclusion que le ++ voulait dire "plus" compliqué pour pas grand chose de "plus". Bref, contre vents et marées, je suis resté au C.

Bye! A++!