cs_Spawnrider
Messages postés254Date d'inscriptionjeudi 30 janvier 2003StatutMembreDernière intervention 9 avril 20071 1 déc. 2004 à 14:08
Mais si je me suis reconnu Crazynoper ....
Quand est ce kon va se faires kke affiches ???
Allé +++++++
crazynoper
Messages postés13Date d'inscriptionvendredi 28 février 2003StatutMembreDernière intervention 7 septembre 2005 28 févr. 2004 à 01:48
le but était quand même de faire ma boucle, donc un truc du style while(true) à la base, je sais pas si je m'était bien fait comprendre.
c'est pour sa que je précisai qu'avant je codé sur du pascal,
utilisant tt le temps repeat / until
la condition doit être faux pour continuer une autre itération contrairement au C.
et puis oui, y a le ";" qui serait remplacé par la routine de traitement des messages
BlackGoddess
Messages postés338Date d'inscriptionjeudi 22 août 2002StatutMembreDernière intervention14 juin 2005 28 févr. 2004 à 00:28
on est d'accord :)
jcommencais a prendre peur :)
Hellaynnea
Messages postés57Date d'inscriptionsamedi 14 décembre 2002StatutMembreDernière intervention 2 mai 2005 28 févr. 2004 à 00:20
mouais ok :) j'avais pas lu le false oups
BlackGoddess
Messages postés338Date d'inscriptionjeudi 22 août 2002StatutMembreDernière intervention14 juin 2005 28 févr. 2004 à 00:18
mmh ... vs etes au courant sinon que
while(true);
est une boucle infinie, et que while(false);
est pas une boucle du tout ?
Hellaynnea
Messages postés57Date d'inscriptionsamedi 14 décembre 2002StatutMembreDernière intervention 2 mai 2005 28 févr. 2004 à 00:05
Hum je comprends pas pourquoi un compilo devrait enlever l'instructions, les codeurs peuvent mettre des instructions comme ca si ils le veulent, mm si ca sert à rien, ca bloque l'execution du programme (en prenant 100% des ressources) mais dans un contexte multithread ya aucune raison de l'enlever (un codeur ne sachant pas joindre les threads par exemple va faire attendre son prog comme ca (avec un sleep, je sais c crade) )
++
BlackGoddess
Messages postés338Date d'inscriptionjeudi 22 août 2002StatutMembreDernière intervention14 juin 2005 27 févr. 2004 à 23:53
while(false) ;
=> ca sert a rien ^^ un bon compilo va l'enlever, un mauvais va faire un test intutile
crazynoper
Messages postés13Date d'inscriptionvendredi 28 février 2003StatutMembreDernière intervention 7 septembre 2005 27 févr. 2004 à 18:40
> while(false) ;
>
> ah bin la c clair tu rsique pas d'avoir une boucle infinie ^^
lol, oui la preuve que j'ai bien fait de rechoper cette boucle qqpart...
avant le C, j'ai appris le pascal, donc habitué au traditionnel (repeat/until).
je débute, mais bon, je m'en sort mieu maintenant qu'au moment ou j'avais poster ce code.
BlackGoddess
Messages postés338Date d'inscriptionjeudi 22 août 2002StatutMembreDernière intervention14 juin 2005 20 févr. 2004 à 01:55
while(false) ;
ah bin la c clair tu rsique pas d'avoir une boucle infinie ^^
crazynoper
Messages postés13Date d'inscriptionvendredi 28 février 2003StatutMembreDernière intervention 7 septembre 2005 20 oct. 2003 à 21:36
Heu... Hellaynnea à la base non, mais je te passe volontier le bonjour à toi aussi. En fait c'était pour un copain qui en LAN avec moi à l'université (donc un gars que je cotois tous les jours).
Voili Voilou (et pis au passage, il c'est pas reconnu, j'ai du lui dire).
Hellaynnea
Messages postés57Date d'inscriptionsamedi 14 décembre 2002StatutMembreDernière intervention 2 mai 2005 20 oct. 2003 à 14:29
> bonjour à Yohan du réseau (il se reconnaitra)
C moi ca ? :)
cs_poppyto
Messages postés540Date d'inscriptiondimanche 29 décembre 2002StatutModérateurDernière intervention13 mai 2011 15 oct. 2003 à 23:54
Le développement sous Windows en C est une quête longue et périlleuse...mais ça pourra peut être te mener à un job (on m'a engagé parceque j'étais capable de faire des activeX en C donc pas besoin de payer la licence Kro pour ceux en VB).
Malgré tout si tu es très motivé, sache que les newsgroup (sur google par exemple pour faire de la recherche) seront tes meilleures amies ;o)
Stef++
crazynoper
Messages postés13Date d'inscriptionvendredi 28 février 2003StatutMembreDernière intervention 7 septembre 2005 15 oct. 2003 à 23:37
merci poppyto pour ton aide, je vais méditer tout ça
Surtout si je me met à developper sous windows, ton aide
me sera préciseuse (je reprendrais cette routine de base)
quand aux macros, elles m'ont l'air interressantes à utiliser :-p
chao
cs_poppyto
Messages postés540Date d'inscriptiondimanche 29 décembre 2002StatutModérateurDernière intervention13 mai 2011 14 oct. 2003 à 07:42
salut crazynoper :o)
> msg = (LPMSG)malloc(sizeof(tagMSG));
je trouve que ce ce malloc n'a pas tellement d'intérêt ....Tout le monde utilise une variable locale (de toute façon, toutes les variables locales de WinMain ne seront supprimées qu'à la fermeture du programme...) et dans ton cas, tu ne retourne même pas le membre wParam de la structure MSG....
D'ailleurs si tu devais le faire, tu devrais passer par une variable locale pour récupérer le wParam de MSG et la retourner car l'allocation avec malloc se ballade dans la nature.
Allez je te laisse en espérant t'avoir filé de bons tuyaux ;o)
Stef++
crazynoper
Messages postés13Date d'inscriptionvendredi 28 février 2003StatutMembreDernière intervention 7 septembre 2005 13 oct. 2003 à 19:54
J'ai rajouté des commentaires dans mon code, pour qu'on voit mieu à quoi sert chaque inscruction.
> BruNews, oui une partie vien de la msdn directement :
while (GetMessage(msg, (HWND) NULL, 0, 0)) {
if (!TranslateMDISysAccel(hwndMDIClient, msg) &&
!TranslateAccelerator(hwndFrame, hAccel, msg)) {
TranslateMessage(msg);
DispatchMessage(msg);
}
En fait, elle fait tourner le programme en boucle infiniment, pcq je voyais mal un truc du genre
while(false) ;
et je ne voulais pas non plus utiliser la mfc (je débute, donc je preférerais m'habituer à faire sans).
Le reste du code c'est de moi.
Il s'agit de la boucle principal du programme, WinMain n'ira pas directement à return 0.
Et puis sinon la source est testée chez moi et marche impecable sous VC++ 6, alors normalement pas de pb.
J'espère que mes commentaires dans la source t'aiderons à mieu comprendre.
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 13 oct. 2003 à 18:54
Tu as fait un copier coller, il manque des morceaux. WinMain va aller tout droit a return 0 sans rien faire. Un prog C n'a pas a appeler ExitProcess(0); il y a un runtime pour cela.
while(GetMessage(msg.... SERT A QUOI ?
On comprend vite pourquoi il n'y a pas de zip.
1 déc. 2004 à 14:08
Quand est ce kon va se faires kke affiches ???
Allé +++++++
28 févr. 2004 à 01:48
c'est pour sa que je précisai qu'avant je codé sur du pascal,
utilisant tt le temps repeat / until
la condition doit être faux pour continuer une autre itération contrairement au C.
et puis oui, y a le ";" qui serait remplacé par la routine de traitement des messages
28 févr. 2004 à 00:28
jcommencais a prendre peur :)
28 févr. 2004 à 00:20
28 févr. 2004 à 00:18
while(true);
est une boucle infinie, et que while(false);
est pas une boucle du tout ?
28 févr. 2004 à 00:05
++
27 févr. 2004 à 23:53
=> ca sert a rien ^^ un bon compilo va l'enlever, un mauvais va faire un test intutile
27 févr. 2004 à 18:40
>
> ah bin la c clair tu rsique pas d'avoir une boucle infinie ^^
lol, oui la preuve que j'ai bien fait de rechoper cette boucle qqpart...
avant le C, j'ai appris le pascal, donc habitué au traditionnel (repeat/until).
je débute, mais bon, je m'en sort mieu maintenant qu'au moment ou j'avais poster ce code.
20 févr. 2004 à 01:55
ah bin la c clair tu rsique pas d'avoir une boucle infinie ^^
20 oct. 2003 à 21:36
Voili Voilou (et pis au passage, il c'est pas reconnu, j'ai du lui dire).
20 oct. 2003 à 14:29
C moi ca ? :)
15 oct. 2003 à 23:54
Malgré tout si tu es très motivé, sache que les newsgroup (sur google par exemple pour faire de la recherche) seront tes meilleures amies ;o)
Stef++
15 oct. 2003 à 23:37
Surtout si je me met à developper sous windows, ton aide
me sera préciseuse (je reprendrais cette routine de base)
quand aux macros, elles m'ont l'air interressantes à utiliser :-p
chao
14 oct. 2003 à 07:42
> msg = (LPMSG)malloc(sizeof(tagMSG));
je trouve que ce ce malloc n'a pas tellement d'intérêt ....Tout le monde utilise une variable locale (de toute façon, toutes les variables locales de WinMain ne seront supprimées qu'à la fermeture du programme...) et dans ton cas, tu ne retourne même pas le membre wParam de la structure MSG....
D'ailleurs si tu devais le faire, tu devrais passer par une variable locale pour récupérer le wParam de MSG et la retourner car l'allocation avec malloc se ballade dans la nature.
> >WPARAM Retour = msg->wParam;
> >free(msg);
> > return Retour;
Voilà, je pense que c'est un truc à améliorer et puis aussi un autre truc :
Au lieu de faire ça :
> unsigned short sKeyAol 0x80, sKeyProg 0x80;
> // Touche controle :
> sKeyProg = sKeyAol &= GetKeyState(VK_CONTROL);
Tu devrais créer une macro comme ceci:
#define KEYDOWN(vk) ((GetKeyState(vk) & 0x80) ? 1 : 0 )
et après ça donnerait :
if(KEYDOWN(VK_CONTROL))
.....
C'est tout de même plus lisible :o)
Allez je te laisse en espérant t'avoir filé de bons tuyaux ;o)
Stef++
13 oct. 2003 à 19:54
> BruNews, oui une partie vien de la msdn directement :
while (GetMessage(msg, (HWND) NULL, 0, 0)) {
if (!TranslateMDISysAccel(hwndMDIClient, msg) &&
!TranslateAccelerator(hwndFrame, hAccel, msg)) {
TranslateMessage(msg);
DispatchMessage(msg);
}
En fait, elle fait tourner le programme en boucle infiniment, pcq je voyais mal un truc du genre
while(false) ;
et je ne voulais pas non plus utiliser la mfc (je débute, donc je preférerais m'habituer à faire sans).
Le reste du code c'est de moi.
Il s'agit de la boucle principal du programme, WinMain n'ira pas directement à return 0.
Et puis sinon la source est testée chez moi et marche impecable sous VC++ 6, alors normalement pas de pb.
J'espère que mes commentaires dans la source t'aiderons à mieu comprendre.
13 oct. 2003 à 18:54
while(GetMessage(msg.... SERT A QUOI ?
On comprend vite pourquoi il n'y a pas de zip.