Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

apprentissage de le programmation windows

36 réponses
Avatar
Eric Wajnberg
Bonjour,

J'aurai besoin d'un conseil.

Je cherche à apprendre la programmation d'applications Windows.

Je connais déjà bien le C et également bien la programmation directement de
la Xlib (sous X11) sous Unix. J'ai besoin à présent de développer du code
sous windows.

J'ai donc deux/trois questions:

1) Je cherche un compilateur simple, souple, efficace et freeware qui me
permettre d'écrire, débugger et compiler du C à volonter. Et qui puisse
inclure des librairies (et/ou un éditeur de ressources) qui me face gagner
(beaucoup) de temps. En connaissez vous un? J'ai entendu parler de
lcc-win32. Que me conseillez vous? J'aimerai bien un compilateur qui possède
un forum de discussion en cas de problème, mais on ne peut pas toujours
réver..

1.bis) où pourrais-je trouver des librairies disponibles qui vont avec
(widgets, boutons, ascenseurs, etc..)? Toujours en freeware.

2) Je voudrais apprendre à partir d'un livre qui commence par le BA-BA, mais
qui soit exaustif, au besoin en anglais. Les sites web que j'ai visité et
qui présentent des tutoriaux ne me parraissent pas assez complets et pas
forcement clairs. Quel ouvrage me conseillerez vous?

D'avance merci pour toute aide sur ce point.

Eric.

10 réponses

1 2 3 4
Avatar
Remi Thomas
From: "Eric Wajnberg"
Bonjour,

J'ai donc deux/trois questions:

1) Je cherche un compilateur simple, souple, efficace et freeware qui me
permettre d'écrire, débugger et compiler du C à volonter. Et qui puisse
inclure des librairies (et/ou un éditeur de ressources) qui me face gagner
(beaucoup) de temps. En connaissez vous un? J'ai entendu parler de
lcc-win32. Que me conseillez vous? J'aimerai bien un compilateur qui
possède
un forum de discussion en cas de problème, mais on ne peut pas toujours
réver..



Et bien le .NET SDK est gratuit et propose les compilateurs en ligne de
commande.
C'est le plus adapté pour cette plate-forme, c'est un standard de fait car
c'est celui de Microsoft.
Pour le télécharger
http://www.microsoft.com/downloads/details.aspx?familyid›3a2ca6-3647-4070-9f41-a333c6b9181d&displaylang=en
Tu auras le compilateur C++ mais aussi C# et VB.NET


1.bis) où pourrais-je trouver des librairies disponibles qui vont avec
(widgets, boutons, ascenseurs, etc..)? Toujours en freeware.



Le SDK Microsoft est également gratuit.
Tu peux le télécharger ici:
http://msdn.microsoft.com/platformsdk/

Par contre tu n'aura pas d'editeur de resource, c'est l'éditeur qui te
permet de créer les boites de dialogues.
Je n'en connais pas en freeware.


2) Je voudrais apprendre à partir d'un livre qui commence par le BA-BA,
mais
qui soit exaustif, au besoin en anglais. Les sites web que j'ai visité et
qui présentent des tutoriaux ne me parraissent pas assez complets et pas
forcement clairs. Quel ouvrage me conseillerez vous?



Normalement c'est le Petzold
http://www.charlespetzold.com/pw5/
Il existe en français.

Bon mais est-ce que C/C++ est vraiment nécessaire pour ce portage ?
Il existe maintenant .NET et les langages C# et VB.NET
Si je prends le langage C# c'est très proche de Java ou C++.
Cela te permet de faire des applications Windows plus simplement mais
surtout c'est l'environnement de dev d'avenir pour Windows. Avec .NET tu
peux faire "autant" de chose qu'en C/C++, je dirai même plus de chose !
Pour en apprendre plus sur .NET:
http://www.pixel-technology.com/rthomas

Un Visual Studio .NET C# c'est 150 Euro TTC
Existe aussi SharpDevelop qui est freeware
http://www.icsharpcode.net/OpenSource/SD/
Enfin Visual C# Express qui est toujours gratuit car encore en bêta
http://lab.msdn.microsoft.com/express/vcsharp/default.aspx



D'avance merci pour toute aide sur ce point.

Eric.




Pour terminer l'aide en ligne est disponible ici:
http://msdn.microsoft.com/library

Courrage, découvrir le dev sur Windiows peut faire peur, il faut s'accrocher
vu la quantité d'information.

Rémi

---
Rémi Thomas - MVP Visual Studio .NET
Développeur Windows indépendant
http://www.xtware.com/cv
Avatar
Thierry
Bonjour,

Remi Thomas a écrit :

Cela te permet de faire des applications Windows plus simplement mais
surtout c'est l'environnement de dev d'avenir pour Windows.



Hum. Sans vouloir polemiquer : c'est une réalité ou juste le discours
marketing de MS ?

Avec .NET tu
peux faire "autant" de chose qu'en C/C++, je dirai même plus de chose !



Quoi de plus que tu ne peux faire avec l'API Win32 ?

--
« Le travail est probablement ce qu'il y a sur cette terre de plus bas et
de plus ignoble. Il n'est pas possible de regarder un travailleur sans
maudire ce qui a fait que cet homme travaille, alors qu'il pourrait nager,
dormir dans l'herbe ou simplement lire ou faire l'amour avec sa femme. »
Boris VIAN
Mon blog RSS : http://yarglah.free.fr/monblog_rss.php <<




Avatar
Remi Thomas
"Thierry" a écrit
Bonjour,


Salut,

Remi Thomas a écrit :

Cela te permet de faire des applications Windows plus simplement mais
surtout c'est l'environnement de dev d'avenir pour Windows.



Hum. Sans vouloir polemiquer : c'est une réalité ou juste le discours
marketing de MS ?




Divers éléments peuvent répondre à cette question
- La prochaine version de Windows (Longhorn) devra être programmée en .NET
pour tirer partie des nouveautés
- Borland est en train de porter ses outils de dev en version .NET
- La prochaine version de SQL server permettra de faire des procédure
stockée en .NET
- La prochaine version d'Office vera ses macros virer au .NET
- MS sort des produits 100% .NET comme Biztalk mais aussi Reporting Services
Donc ce n'est pas uniquement un discourt marketing de la part de MS, c'est
déjà une rélaité.

Avec .NET tu
peux faire "autant" de chose qu'en C/C++, je dirai même plus de chose !



Quoi de plus que tu ne peux faire avec l'API Win32 ?




Visuellement pas beaucoup plus.
Par contre ton code peux être 100% objet, et ceci cela change pas mal de
chose pour les développeurs, même pour les composants visuels de base de
Windows. Personnaliser un controle en quelques lignes de code c'est très
interessant.
Plus quelques nouvelles techno comme
- ADO.NET
- ASP.NET
et des "add-in" comme la reflexion ou VSA. Par exemple:
http://www.c2i.fr/code.aspx?IDCodeB5
mais aussi des notions comme les delegates.

Rémi

--
Rémi Thomas - MVP Visual Studio .NET
Développeur Windows indépendant
http://www.xtware.com/cv
Avatar
Vincent Burel
"Remi Thomas" wrote in message
news:41d3ccd0$0$20253$
"Thierry" a écrit
> Bonjour,
Salut,
>
> Remi Thomas a écrit :
>
>> Cela te permet de faire des applications Windows plus simplement mais
>> surtout c'est l'environnement de dev d'avenir pour Windows.
>
> Hum. Sans vouloir polemiquer : c'est une réalité ou juste le discours
> marketing de MS ?
>

Divers éléments peuvent répondre à cette question
- La prochaine version de Windows (Longhorn) devra être programmée en .NET
pour tirer partie des nouveautés
- Borland est en train de porter ses outils de dev en version .NET
- La prochaine version de SQL server permettra de faire des procédure
stockée en .NET
- La prochaine version d'Office vera ses macros virer au .NET
- MS sort des produits 100% .NET comme Biztalk mais aussi Reporting


Services
Donc ce n'est pas uniquement un discourt marketing de la part de MS, c'est
déjà une rélaité.



qu'est ce que vous appelez .NET. Je me rappelle quand les obj com/ole ont
commencer à sortir , y'a des tocards du développement qui juraient dur comme
fer que c'était impossible de se servir des nouveauté du shell windows en C
... donc obligation de programmer en C++. Evidemment C'était faux.

Visuellement pas beaucoup plus.
Par contre ton code peux être 100% objet, et ceci cela change pas mal de
chose pour les développeurs, même pour les composants visuels de base de
Windows. Personnaliser un controle en quelques lignes de code c'est très
interessant.



Windows a toujours été orienté objet et les composant visuel ont toujours
été du pur object... On a l'impression que vous confondez OO et C++, c'est à
dire que vous confondez l'objet et l'outil qui permet de le créer...

De même on peut faire de la boite de dialogue, et de la GUI sans les
éditeurs de resources ; J'ai toujours tout fais à la main dans ce domaine,
ca m'a jamais empéché de faire de la GUI ou de la dialog box.

ceci dit, même si on a l'impression que c'est l'outil qui travaille à votre
place. (vous parlez trop des outils, même sur votre site web)... vos
conseils sont très bons.

VB
Avatar
Remi Thomas
"Vincent Burel" écrivit

qu'est ce que vous appelez .NET. Je me rappelle quand les obj com/ole ont
commencer à sortir , y'a des tocards du développement qui juraient dur
comme
fer que c'était impossible de se servir des nouveauté du shell windows en
C
... donc obligation de programmer en C++. Evidemment C'était faux.



Exacte, on peut utiliser des objets COM en C mais c'est franchement
compliqué.
Microsoft .NET c'est le nouveau moyen de développer des application pour la
plate-forme Windows.
Cela fonctionne avec du PCode et une machine virtuelle.
Initialement cela devait fonctionner sur la machine virtuelle Java mais en
raison du procés avec Sun Microsoft à crée sa propre machine virtuelle.


Visuellement pas beaucoup plus.
Par contre ton code peux être 100% objet, et ceci cela change pas mal de
chose pour les développeurs, même pour les composants visuels de base de
Windows. Personnaliser un controle en quelques lignes de code c'est très
interessant.



Windows a toujours été orienté objet et les composant visuel ont toujours
été du pur object... On a l'impression que vous confondez OO et C++, c'est
à
dire que vous confondez l'objet et l'outil qui permet de le créer...




Les composants visuals du SDK Win32 Microsoft ne sont pas des objets. Ce
sont des composants reutilisables tout au plus.
Il existe des surcouches comme Delphi ou MFC qui transforment ceci plus ou
moins bien en objets.

De même on peut faire de la boite de dialogue, et de la GUI sans les
éditeurs de resources ; J'ai toujours tout fais à la main dans ce domaine,
ca m'a jamais empéché de faire de la GUI ou de la dialog box.



Bien entendu, on peut aussi faire ses makefile à la main mais franchement il
existe des choses plus interessantes à faire.


ceci dit, même si on a l'impression que c'est l'outil qui travaille à
votre
place. (vous parlez trop des outils, même sur votre site web)... vos
conseils sont très bons.




D'ou le nom de *Visual* Studio. Ce sont des outils visuels qui travaillent
pour nous visuellement.
Toutes les tâches peut interessant sont faite par les outils.
Le maître mot de tout ceci est productivité. Moins le développeur perds de
temps avec du paramétrage, plus il en passe à faire du code.

C'est terminé l'époque du printf pour faire du debug et des makefile à la
main. Ouf !

La démo avec Visual Studio .NET qui affiche le contenu d'une table SQL dans
une listbox avec une seule ligne de code fait toujours son petit effet quand
je la joue !

Rémi
Avatar
Vincent Burel
"Remi Thomas" wrote in message
news:41d42226$0$3030$
>



Exacte, on peut utiliser des objets COM en C mais c'est
franchement compliqué.



ben franchement je ne vois pas en quoi !?

Les composants visuals du SDK Win32 Microsoft ne sont pas des objets. Ce
sont des composants reutilisables tout au plus.



huh ! ha bon !?! ... ca pourrait bien partir en troll ce truc...
heureusement que c'est les vacances :-)

Il existe des surcouches comme Delphi ou MFC qui transforment ceci plus ou
moins bien en objets.



C'est bien ce que je dis, vous confondez Object et formalisme Object. Pour
vous, tant que ce n'est pas formalisé en C++ , ou delphi bidule, c'est pas
de l'objet... ne vous inquiétez pas ca vous passera, juste un peu de maniaco
dépression post fac.

Bien entendu, on peut aussi faire ses makefile à la main mais franchement


il
existe des choses plus interessantes à faire.



quand ca !? maintenant vous voulez dire, juste avant le 31 ! :-) non sans
dec vous savez qu'un programmeur professionnel ne programme qu'à l'aide de
la combinaison CTRL-V / CTRL-C... RAD ou pas RAD, éditeur de GUI ou pas, on
s'en fout un peu quand même...

D'ou le nom de *Visual* Studio. Ce sont des outils visuels qui travaillent
pour nous visuellement.



a part l'éditeur d'ICON , je ne vois rien d'intéressant visuellement dans le
MSVC++ :-) ou bien j'ai raté qqc !? :-) puisque vous avez l'air de connaitre
un peu Microsoft , faites passer les 3 requètes pour VC ++ merci :
- view define context : vue qui affiche tous les define actifs en fonction
de où que je suis dans le source.
- unused member : affiche les membres de structure inutilisés dans une
couleur différente.
- stack order : je voudrais pouvoir controler l'ordre de déclaration des
locals, ou bien en automatique, dans l'ordre de leur utilisation, ou bien en
manuel dans l'ordre de déclaration.


Toutes les tâches peut interessant sont faite par les outils.
Le maître mot de tout ceci est productivité. Moins le développeur perds de
temps avec du paramétrage, plus il en passe à faire du code.



pour un mec qui dit programmer depuis 1980, je ne vous trouve pas très
productif...

C'est terminé l'époque du printf pour faire du debug et des makefile à la
main. Ouf !



pas pour moi ! ouf ! :-)

La démo avec Visual Studio .NET qui affiche le contenu d'une table SQL


dans
une listbox avec une seule ligne de code fait toujours son petit effet


quand
je la joue !



petit effet !? auprès de qui !?. y'a un public pour ca ou quoi !? :-)

VB
Avatar
AMcD®
Remi Thomas wrote:

Bien entendu, on peut aussi faire ses makefile à la main mais



Encore heureux !

franchement il existe des choses plus interessantes à faire.



Cela se discute. Si ton EDI produit des .mak nazes, encore faut-il être
capable d'y mettre le nez dedans pour les améliorer...

C'est terminé l'époque du printf pour faire du debug et des makefile
à la main. Ouf !



Pas pour moi.

--
AMcD®

http://arnold.mcdonald.free.fr/
Avatar
AMcD®
Vincent Burel wrote:

qu'est ce que vous appelez .NET. Je me rappelle quand les obj com/ole
ont commencer à sortir , y'a des tocards du développement qui
juraient dur comme fer que c'était impossible de se servir des
nouveauté du shell windows en C ... donc obligation de programmer en
C++. Evidemment C'était faux.



Oui, c'était même impossible de coder Win32 en assembleur. Et que dire des
âneries débitées sur les drivers. Des VxD ? Hola, c'est fini ça, tout est
WDM maintenant mon bon monsieur...

--
AMcD®

http://arnold.mcdonald.free.fr/
Avatar
Arnaud Debaene
Vincent Burel wrote:
- view define context : vue qui affiche tous les
define actifs en fonction de où que je suis dans le source.


Je ne dis pas que ce ne serait pas utile, mais si tu en as besoin, c'est que
tu fais un usage franchement excessif des macros par rapport à tous les
"best practices" du C et du C++.

- unused member : affiche les membres de structure inutilisés dans une
couleur différente.


C'est vrai que ca serait sympa...

- stack order : je voudrais pouvoir controler l'ordre de déclaration
des locals, ou bien en automatique, dans l'ordre de leur utilisation,
ou bien en manuel dans l'ordre de déclaration.


Qu'est ce que ca peut te faire? C'est pour quand tu bidouilles avec _asm?

Arnaud
Avatar
Remi Thomas
"Vincent Burel" écrivit

Hello,


Exacte, on peut utiliser des objets COM en C mais c'est
franchement compliqué.



ben franchement je ne vois pas en quoi !?



Simplement quand il faut appeler CoCreateInstance !
Et puis travailler avec les VARIANT je trouve que cela à toujours été une
perte de temps.


Les composants visuals du SDK Win32 Microsoft ne sont pas des objets. Ce
sont des composants reutilisables tout au plus.



huh ! ha bon !?! ... ca pourrait bien partir en troll ce truc...
heureusement que c'est les vacances :-)




Dans la termininologie Microsoft ce sont des 'Window' et pas des objets.
Où est l'héritage, où sont les méthodes virtuelles ? Peux-tu donner un
exemple de ces deux mécanismes sur une textbox Win32? Merci.
Par exemple si tu regardes une listbox Win32
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/commctls/buttons/buttontypesandstyles.asp
C'est noté "A list box is a control window" et non pas que c'est un object.

Maintenant tu regardes dans le .NET Library
http://msdn.microsoft.com/library/en-us/cpref/html/frlrfSystemWindowsFormsListBoxClassTopic.asp?frame=true
C'est noté "Listbox class" au sens objet. D'ailleur il dérive de
ListControl, etc...

Il existe des surcouches comme Delphi ou MFC qui transforment ceci plus
ou
moins bien en objets.



C'est bien ce que je dis, vous confondez Object et formalisme Object. Pour
vous, tant que ce n'est pas formalisé en C++ , ou delphi bidule, c'est pas
de l'objet... ne vous inquiétez pas ca vous passera, juste un peu de
maniaco
dépression post fac.




Désolé mais je n'ai pas vraiment pratiqué la fac.
Tout dépend de la définition que l'on donne de l'objet.
Pour moi si nous n'avons pas l'héritage et les méthodes virtuelles alors ce
n'est pas objet.
Et pour toi quand est-ce que cela devient objet ?

Bien entendu, on peut aussi faire ses makefile à la main mais franchement


il
existe des choses plus interessantes à faire.



quand ca !? maintenant vous voulez dire, juste avant le 31 ! :-) non sans
dec vous savez qu'un programmeur professionnel ne programme qu'à l'aide de
la combinaison CTRL-V / CTRL-C... RAD ou pas RAD, éditeur de GUI ou pas,
on
s'en fout un peu quand même...




Si tu veux. Certain font toujours leurs page HTML avec notepad, chacun
exploite son temps libre comme il veut :-)

D'ou le nom de *Visual* Studio. Ce sont des outils visuels qui
travaillent
pour nous visuellement.



a part l'éditeur d'ICON , je ne vois rien d'intéressant visuellement dans
le
MSVC++ :-) ou bien j'ai raté qqc !? :-)



Oui, je parlai de Visual Studio.NET sur un projet .NET (C# ou VB.NET)
En C++ il y a moins d'outils. Certainement parceque le développeur C++
semble y être allergique :-)


Toutes les tâches peut interessant sont faite par les outils.
Le maître mot de tout ceci est productivité. Moins le développeur perds
de
temps avec du paramétrage, plus il en passe à faire du code.



pour un mec qui dit programmer depuis 1980, je ne vous trouve pas très
productif...

C'est terminé l'époque du printf pour faire du debug et des makefile à la
main. Ouf !



pas pour moi ! ouf ! :-)




Chacun son truc, sauf que cela ne fonctionne plus très bien sur des projets
ASP.NET ou PocketPC.
Et puis c'est vrai que pouvoir explorer des instances d'objet ce n'est pas
interessant du tout :-)

La démo avec Visual Studio .NET qui affiche le contenu d'une table SQL


dans
une listbox avec une seule ligne de code fait toujours son petit effet


quand
je la joue !



petit effet !? auprès de qui !?. y'a un public pour ca ou quoi !? :-)




Oui, ceux qui font du développement C++ ou VB et qui se lance sur .NET
Je donne de temps en temps "Présentation de Microsoft .NET" en une journée,
c'est agrémenté de quelques démos concrétes.

Rémi

--
Rémi Thomas - MVP Visual Studio .NET
Développeur Windows indépendant
http://www.xtware.com/cv
1 2 3 4