[VC6] [TPE] SIMULATION WIN32 D'UN SYSTEME D'ALARME FAIT POUR LES TPE 2004/2005

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 16 juin 2005 à 23:59
MuPuF Messages postés 536 Date d'inscription mercredi 27 avril 2005 Statut Membre Dernière intervention 22 août 2008 - 21 sept. 2005 à 18:32
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/32124-vc6-tpe-simulation-win32-d-un-systeme-d-alarme-fait-pour-les-tpe-2004-2005

MuPuF Messages postés 536 Date d'inscription mercredi 27 avril 2005 Statut Membre Dernière intervention 22 août 2008
21 sept. 2005 à 18:32
oui, tout ce qui est dans le programme marche a la perfection, (si j'avais un bug devant les profs ça aurait pas été jojo, comme billou et windows 98 qui plante pendant sa demo lol).
ketchupy45 Messages postés 101 Date d'inscription dimanche 1 mai 2005 Statut Membre Dernière intervention 13 décembre 2007 1
20 juin 2005 à 10:04
Est ce que la fonction pour régler la temporisation marche?
MuPuF Messages postés 536 Date d'inscription mercredi 27 avril 2005 Statut Membre Dernière intervention 22 août 2008
17 juin 2005 à 19:55
devant plutot, je m'étais dis ça, mais j'ai voulus tester, et ça a marché, mais promis je le referai plus.
J'avais mis ça car avec NULL ---> Plantage (et je comprend pourquoi lol, essayer de ranger des oeufs dans un panier sans le panier ;-) bon ok l'exemple et nul a chier mais dans l'idée c'est ça)
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
17 juin 2005 à 19:50
On n'écrit pas sur un buffer de 1 octet comme dit vecchio !!!
"" fait 1 octet, juste le zero final, tu écrases les données qui sont derriere.
MuPuF Messages postés 536 Date d'inscription mercredi 27 avril 2005 Statut Membre Dernière intervention 22 août 2008
17 juin 2005 à 19:42
ah j'ai oublié, l'avantage aussi de mettre le if(LOWORD(wParam) == IDOK) c'est que on peux avoir le meme code pour 2 boutons en faisant if(LOWORD(wParam) == IDM_SAVE || LOWORD(wParam) == IDC_SAVE)
MuPuF Messages postés 536 Date d'inscription mercredi 27 avril 2005 Statut Membre Dernière intervention 22 août 2008
17 juin 2005 à 19:38
Ben .... je comprends pas alors, il compile, et il court meme ! je l'ais testé quelques jours et jamais eu de prob de ce coté ...
c'est la seule fois que je l'ais utilisée comme ça, d'habitude je l'utilise comme tu le préconise.

Je parlais de MSDN l'aide sur cd de 1998 (donc un peu vielle et pas tres remplie mais tout de meme tres tres tres pratique) Je me suis servi du site pour les sockets que je maitrise tjs pas, vivement que j'y arrive et je me fais une classe pour ne plus galerer ;-)

Encore une fois merci a tous (je vais devenir saoulant mais je ne vous remercirez jamais assez)
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
17 juin 2005 à 19:31
Pour le itoa je persiste: le deuxième paramètre doit pointer vers une chaine qui va contenir le texte. Si tu fournis "" ce n'est pas bon. Ce n'est pas parce que ca compile (seule la syntaxe est correcte) que le code marchera
cs_Joky Messages postés 1787 Date d'inscription lundi 22 novembre 2004 Statut Membre Dernière intervention 31 janvier 2009 2
17 juin 2005 à 19:28
MSDN n'as rien d'un site peu détaillé...
Faut savoir cherché...
MuPuF Messages postés 536 Date d'inscription mercredi 27 avril 2005 Statut Membre Dernière intervention 22 août 2008
17 juin 2005 à 19:23
Bon, donc pour bien supprimer un tableau il faut mettre [] apres le delete, ok Noté

Pour l'addition, merci encore, je connaissais que comment marche vb6, j'ai donc testé pareil, ça a marché, j'ai pas cherché plus loin.

Pour itoa, la syntaxe est char* itoa(int, char*,int). Donc normal que ça marche ...

Pour les else if c'est comme le switch, et la c'est une question de gout, je prefere ici le if (meme si c'est plus long car il doit recuperer la valeur a chaque if). Mais je le garde en mémoire si je dois faire ça n jour dans une boucle.

Pour playsound j'ai galeré, (je hais les commandes sans exemples ! comment on peux comprendre avec 1/2 exemples surtout si c'est mal détaillé comme sur msdn)a la base je voulais l'inclure dans l'exe mais j'ai abandonné d'ou surrement l'oublis de mettre .

UN GROS MERCI, je veux pas rester un debutant toute ma vie lol, donc j'essais d'apprendre, vous êtes vraiment sympa d'aider les troufions ;-)
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
17 juin 2005 à 18:15
Peut être que le compilo optimise lui même, mais pour la sémantique je mettrais des else. Le mieux ici etant bien sur un switch
cs_Urgo Messages postés 780 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 16 avril 2009 1
17 juin 2005 à 18:05
vecchio, es-tu certain pour les if et else if ? J'avais déjà regardé l'asm généré par VC++ 7 et j'avais vu aucune différence... ?
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
17 juin 2005 à 17:21
Désolé pour les messages à répétition, mais la j'ai vu une vraie erreur:
SetWindowText(handle,itoa(tempo,"",10));
Cela n'a aucune raison de marcher, tu t'en sors bien si ca marche.
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
17 juin 2005 à 17:18
Le deuxième arg de PlaySound devrait être 0, car le fichier que tu utilises pour le son n'est pas dans les ressources du programme. Et si c'était le cas, tu devrais remplacer GetModuleHandle(0) par hInstance
Un autre truc que je trouve horrible: MB_YESNO+MB_ICONWARNING. L'addition n'est pas vraiment l'opérateur idéal ici. Quand les defines ne sont pas de puissances de deux ca peut donner de droles de résultat. Et si par erreur si écris deux fois MB_YESNO, ca va t'enlever MB_YESNO. L'usage est plutot d'écrire MB_YESNO | MB_ICONWARNING
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
17 juin 2005 à 17:12
Pour suivre la remarque de BruNews, il fallait écrire delete[] Ctempo; et pas delete Ctempo; pour libérer la mémoire.
Les images créées avec LoadBitmap doivent être libérées avec DeleteObject
Et aussi fais un switch(LOWORD(wParam)) dans ton WM_COMMAND, ou au moins remplace les if par des else if, car les cas sont exclusifs
MuPuF Messages postés 536 Date d'inscription mercredi 27 avril 2005 Statut Membre Dernière intervention 22 août 2008
17 juin 2005 à 16:59
Ben si tu veux savoir, ils m'ont demandé en quoi c'étais. Je leurs ais dis que c'étais du cpp et leurs ais demmandé si ils voulaient voir la source, ils m'on dit un GROS NON ! ;-) lol
cs_Joky Messages postés 1787 Date d'inscription lundi 22 novembre 2004 Statut Membre Dernière intervention 31 janvier 2009 2
17 juin 2005 à 16:32
J'veux être prof !!!
C'est quoi ces préjugés comme quoi ils sont pas fute fute ???
Certes, y'a beaucoup de cons :) mais bon...
MuPuF Messages postés 536 Date d'inscription mercredi 27 avril 2005 Statut Membre Dernière intervention 22 août 2008
17 juin 2005 à 14:08
GetDlgItemInt !! Je connaissais pas ! je connaissais que le GetDlgItemText, faut dire que je commence juste le win32. Je vais enlever les accents ...
Taranael Messages postés 54 Date d'inscription dimanche 27 février 2005 Statut Membre Dernière intervention 21 juin 2007 1
17 juin 2005 à 08:12
Bonne chance pour ton TPE mais fais gaffe en général les profs sont pas très malins et quand ils voient une page de code ils cherchent pas à comprendre ce qu'il y a ils préfèrent te dire que ça les interesse pas. Faut pas trop leur en demander ils sont prof :)
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
16 juin 2005 à 23:59
Salut,
stp évite les noms avec accents, ça ne passe pas à la visualisation 'membre club'.
handle = GetDlgItem(hwnd,IDC_RES);
Ctempo=new char[7];
GetWindowText(handle,Ctempo,6);
tempo=atoi(Ctempo);
delete Ctempo;
Tu pourrais remplacer tout cela par un GetDlgItemInt, new comme toute alloc coute cher, bien sur pas grave ici mais y penser pour prog plus important.
Rejoignez-nous