OVH Cloud OVH Cloud

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
Eric Wajnberg
Hey, très interessante votre discussion, mais elle m'amène à deux reflexions
majeures:

1) Ca ne correspond pas/plus à mes questions dans mon post initial: Par où
commencer pour quelqu'un (comme moi) qui connait déjà bien le C et qui
connait déjà bien la programmation sous X Windows (via la Xlib sous X11). En
clair, quel compilateur, et quelle méthode d'apprentissage pour se lancer
plutôt rapidement dans la programmation Windows, sans tout réaprendre, et
sans forcement viser des applications sophistiquées.

2) Je code depuis des années sous Unix (autour de la Xlib, donc), et vos
débats me laisse penser que le monde d'Unix me semble plus stable, plus sur,
plus complet, plus tout et tout.. Mais voilà, j'ai le besoin à présent de
développer sous Windows. Bouuuuh.. Ok, j'imagine que cette derniere phrase
va faire réagir encore des lignes de posts sur le débat Bill Gates -
Microsoft.

Merci encore pour toute aide.

Eric.



> 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...

--


Avatar
Vincent Burel
"Arnaud Debaene" wrote in message
news:41d4b90f$0$2578$
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++.



non, je ne suis pas très usagé de Macro... mais de define oui, entre le code
qui dépend de la platform, des options/version diverses et de mes méthode de
build à code ultrashared :-)

> - unused member : affiche les membres de structure inutilisés dans une
> couleur différente.
C'est vrai que ca serait sympa...



sympa ! moi je dirais utile ! :-)

> - 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?



oulah , je vois qu'on n'y pige rien en processeur ici... Alors d'abord ca
pourrait être une optimization comme une autre... un algo qui utilise les
variables dans l'ordre de leur déclaration aide le cache, donc permet
d'aller plus vite. Ensuite pouvoir controler l'alignement des locales ne
serait pas du luxe, notamment quand on s'amuse avec du MMX, SSE etc...
Encore une fois ce sont des questions qui concernent les programmeurs :-)

VB
Avatar
Vincent Burel
"Remi Thomas" wrote in message
news:41d4deae$0$4132$
"Vincent Burel" écrivit

> ben franchement je ne vois pas en quoi !?

Simplement quand il faut appeler CoCreateInstance !



ha ouai, ca c'est dur. ! :-)

Et puis travailler avec les VARIANT je trouve que cela à toujours été une
perte de temps.



des VARIANT !? c'est quoi !?

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.



je n'ai pas de temps à perdre avec un esprit limité par le formalisme des
mots. Mais si vous chercher sur google, y'a pas très longtemps sur ce forum
nous avons devisé sur l'aspect Object des API Windows...

Désolé mais je n'ai pas vraiment pratiqué la fac.



c'est pas de pot, éviter la Fac pour être aussi formaliste et emprunt de
cette rigeur inutile et superflux.... si chère aux universitaires
français... qui aiment à complexifier le formalisme de leur science en
proporsion avec la méconnaissance qu'il ont du sujet...

Tout dépend de la définition que l'on donne de l'objet.



oui, c'est le débat que j'avais hier soir avec un Clingon mutant sous
l'emprise d'une bière rommulanaise... :-) "si chaqun à sa définition des
mots, alors point la peine de parler, buvons plutot ! ... il est des no.."

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 :-)



"developpeur C++" !? non, du calme, on dit "utilisateur C++", "développeur
C" et "programmeur ASM". (et "gamer Java" :-)

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 :-)



Ca dépend ce qu'on programme mon cher, Ceux qui travaillent dans le millieu
pro sont confronté à des sessions débugging où certain partie du soft sont
protégé par de la clef hardware, ou certaine partie du code sont
externalisées dans de la carte additionnel, et le debugger VC ne sert plus à
rien, il faut faire de la trace sur disque, allumer des diode, ou faire
péter du rapport sur l'imprimante. Vous vous travaillez dans un autre
domaine, n'en faite pas une généralité , merci.

VB
Avatar
Remi Thomas
"Vincent Burel" écrivit

oulah , je vois qu'on n'y pige rien en processeur ici... Alors d'abord ca
pourrait être une optimization comme une autre... un algo qui utilise les
variables dans l'ordre de leur déclaration aide le cache, donc permet
d'aller plus vite. Ensuite pouvoir controler l'alignement des locales ne
serait pas du luxe, notamment quand on s'amuse avec du MMX, SSE etc...
Encore une fois ce sont des questions qui concernent les programmeurs :-)




Je vois que si on te parle PCode .NET tu va faire des bons au plafond.
Chacun son monde effectivement.

Remi
Avatar
Remi Thomas
"Eric Wajnberg" écrivit

Salut,

Hey, très interessante votre discussion, mais elle m'amène à deux
reflexions
majeures:

1) Ca ne correspond pas/plus à mes questions dans mon post initial: Par où
commencer pour quelqu'un (comme moi) qui connait déjà bien le C et qui
connait déjà bien la programmation sous X Windows (via la Xlib sous X11).
En
clair, quel compilateur, et quelle méthode d'apprentissage pour se lancer
plutôt rapidement dans la programmation Windows, sans tout réaprendre, et
sans forcement viser des applications sophistiquées.



Je pense que la réponse idéale pour toi est QT
http://www.trolltech.com/products/qt/index.html

Ou alors précises le type d'application que tu désires réaliser.
Le C n'est plus le language le plus pratiqué en dev Windows.
Et désolé mais tu va devoir tout réapprendre. C'est pour cela que je te
t'oriente sur .NET/C#, tant qu'a tout apprendre autant choisir un outil
d'avenir (non ce n'est pas un troll)


2) Je code depuis des années sous Unix (autour de la Xlib, donc), et vos
débats me laisse penser que le monde d'Unix me semble plus stable, plus
sur,
plus complet, plus tout et tout.. Mais voilà, j'ai le besoin à présent de
développer sous Windows. Bouuuuh.. Ok, j'imagine que cette derniere phrase
va faire réagir encore des lignes de posts sur le débat Bill Gates -
Microsoft.




Pas de débats pendant la tréve des confiseurs :-)
En tout cas bienvenue dans le dev Windows, le plus répendu !

Rémi

ps: As-tu pensé à Java ?

--
Rémi Thomas - MVP Visual Studio .NET
Développeur Windows indépendant
http://www.xtware.com/cv
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++.



non, je ne suis pas très usagé de Macro... mais de define oui,


C'est quoi la différence?

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


C'est vrai que ca serait sympa...



sympa ! moi je dirais utile ! :-)

- 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?



oulah , je vois qu'on n'y pige rien en processeur ici...


Toujours aussi poli à ce que je vois...

Alors
d'abord ca pourrait être une optimization comme une autre... un algo
qui utilise les variables dans l'ordre de leur déclaration aide le
cache, donc permet d'aller plus vite. Ensuite pouvoir controler
l'alignement des locales ne serait pas du luxe, notamment quand on
s'amuse avec du MMX, SSE etc... Encore une fois ce sont des questions
qui concernent les programmeurs :-)


Oui, par exemple les gens qui connaissent la spécification du langage qu'ils
utilisent et qui comprennent les contraintes d'alignement de la stack?
Ah mais j'oubliais! comme tu es un "vrai" programmeur, les contraintes du
langage ne s'appliquent pas à toi puisque tu sais ce que tu es un grand
garçon qui optimise toujours à mort, c'est cà?

Arnaud
Avatar
Arnaud Debaene
Eric Wajnberg wrote:
Hey, très interessante votre discussion, mais elle m'amène à deux
reflexions majeures:

1) Ca ne correspond pas/plus à mes questions dans mon post initial:
Par où commencer pour quelqu'un (comme moi) qui connait déjà bien le
C et qui connait déjà bien la programmation sous X Windows (via la
Xlib sous X11). En clair, quel compilateur, et quelle méthode
d'apprentissage pour se lancer plutôt rapidement dans la
programmation Windows, sans tout réaprendre, et sans forcement viser
des applications sophistiquées.


Dans ce cas, tu peux attaquer directement l'API Win32, pas besoin d'aucune
bibliothèque... Et au fait, sous Windows les "widgets" ne sont pas fournis
par une bibliothèque tierce, il font directement partie de l'API du système.


2) Je code depuis des années sous Unix (autour de la Xlib, donc), et
vos débats me laisse penser que le monde d'Unix me semble plus
stable, plus sur, plus complet, plus tout et tout..


Tu va peut être me faire croire qu'il n'y a jamais de débat dans le monde
Unix ni de grandes geules qui prétendent tout savoir mieux que tout le
monde? Ca doit être bien triste alors ;-)
Avatar
Vincent Burel
"Eric Wajnberg" wrote in message
news:cr349k$8fr$
Hey, très interessante votre discussion, mais elle m'amène à deux


reflexions
majeures:

1) Ca ne correspond pas/plus à mes questions dans mon post initial: Par où
commencer pour quelqu'un (comme moi) qui connait déjà bien le C et qui
connait déjà bien la programmation sous X Windows (via la Xlib sous X11).



ben comme il vous a été dit : Petzold.

VB
Avatar
Vincent Burel
"Arnaud Debaene" wrote in message
news:41d52e84$0$31569$

> non, je ne suis pas très usagé de Macro... mais de define oui,
C'est quoi la différence?



Drole question... alors je crois qu'une macro est une suite d'instruction
regroupées sous la forme d'une instruction unique. un define sert à définir
des section de code active ou inactive dans le source.

> oulah , je vois qu'on n'y pige rien en processeur ici...
Toujours aussi poli à ce que je vois...



lucide vous voulez dire ! ? :-)

Oui, par exemple les gens qui connaissent la spécification du langage


qu'ils
utilisent et qui comprennent les contraintes d'alignement de la stack?



veuillez donc me montrez les spec "C/C++" qui définissent ordre et
l'alignement des locales dans la pile...

VB
Avatar
PurL
> Chacun son monde effectivement.



Ouai, y'a ceux qui font du script et ceux qui font du code...


Remi



PurL
1 2 3 4