Mandragor


Introduction

Pourquoi écrire un tutoriel là dessus?

Je me permet un bref mot pour justifier mon travail. Les documentations sur Windows sont rares; la seule réelle et principale source d'information sur la programmation Windows en API natives est la documentation officielle de Microsoft, disponible sur http://msdn.microsoft.com. Toutefois elle est en anglais, et la quantité d'information disponible est tellement importante (des dizaines de Go en html) qu'il est extrêmement ardu de savoir par ou commencer lorsque l'on débute.

La principale alternative est donc de se rendre dans une librairie afin d'acheter un ouvrage sur le sujet. Mais, hélas, les ouvrages sur le sujet sont assez rares! En effet, la plupart de ces derniers traitent des MFCs, que l'on peut considérer comme une surcouche des APIs destinée à simplifier leur utilisation. Je vous conseille donc "Programmer sous Windows" de Charles Petzold, chez Microsoft Press, à mon avis l'ouvrage indispensable pour commencer, vraiment. Seulement voilà, 1600 pages, 450FF (69euros) bref, le pavé, et si vous avez pas les finances qui suivent c'est rapé.

De plus, j'ai également planché pendant pas mal de temps sur un mauvais bouquin, mal expliqué, "La bible du programmeur c/c++", dont la dernière partie traite de la programmation Windows. Il traite de sujets très pointus, mais il est tellement mal expliqué que si on ne connait déjà pas un minimum on n'a aucune chance de comprendre.

Bref, je vais essayer de vous donner ici les bases fondamentales de programmation sous Windows, avec lesquelles vous pourrez par la suite mieux comprendre msdn, qu'aucun tutoriel ne pourra remplacer.

Connaissances requises

J'ai décidé de faire mon cours en C, bien que n'importe quel autre langage correct soit capable de faire des appels d'APIs. Le langage C est donc supposé connu dans la suite de ce tutoriel... Bah oui, on va pas tout réexpliquer non plus :). De bonnes connaissances dans l'utilisation de l'environnement sont également nécessaires, bref, savoir ce que c'est un menu, une barre de défilement, ce genre de trucs :).