MSGBOX DEBUG

cs_JCDjcd Messages postés 1138 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 25 janvier 2009 - 12 janv. 2004 à 19:11
cs_darunia Messages postés 354 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 24 mars 2011 - 23 mai 2008 à 13:47
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/19404-msgbox-debug

cs_darunia Messages postés 354 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 24 mars 2011 2
23 mai 2008 à 13:47
Exemple d'utilisation de va_list et vprintf ... très interessant (car peu courant !)
sebseb42 Messages postés 495 Date d'inscription dimanche 6 juillet 2003 Statut Membre Dernière intervention 9 novembre 2007 1
13 janv. 2004 à 18:16
on pourrais effectivement definir aussi un autre valist pour le titre, mais je pense que ce serais bien inutile, et trop lourd pour le mec qui debug
cs_JCDjcd Messages postés 1138 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 25 janvier 2009 4
13 janv. 2004 à 17:24
Mais non, il ne faut pas etre paranoiaque ....
Poue ce qui est du buffer local, c'est a toi de relire ("ca EVITE de ..."), justement, cette source est bien parceque c'est elle qui declare le buffer en local, et non l'appellant, c'est bien la factorisation de code.
Et enfin pour ce qui est de l'HWND, le jour ou tu es dans une boucle de 1000 iterations, alors tu auras directement 1000 boites de dialogue dont tu ne sais pas l'ordre ....

Un autre question, est-il possible d'avoir aussi un valist pour le titre, ca se programme facilement ??, car on a droit a qu'un valist, plutot on a le droit qu'a mettre les "...3 a un seul endroit.

Sinon, je ne suis pas specialement arage contre toi, une source, il faut faut toujours un peu la critiquer, sinon moi je la trouve bien pour d'autre aspect : simple, clair, petit, court, tres explicite,utile(=factorisation de code), et est un tres bon exemple de fonction a nombre variable d'arguments.

:)
Hellaynnea Messages postés 57 Date d'inscription samedi 14 décembre 2002 Statut Membre Dernière intervention 2 mai 2005
12 janv. 2004 à 21:48
Moi jsuis pas d'accord avec JCDjcd, je trouve qu'elle est pratique cette source. Juste un truc, c'est que pour le HWND il peut etre utile de pouvoir le changer. Pke si tu ouvres une dialog box en mode modalframe et que par dessus tu la mets au dessus de toute application tes messagebox apparaitrons derrière mais bon la je pinaille un peu (je sais ca m'est déja arrivé récemment dans un projet professionnel). sinon c sympas et c pratique. Au pire ce que je faisais aussi c t la mm chose mais sans la fonction, en gros je la met que qd j'en ai besoin c avec ostringstream (sstream.h) qui agit comme un stream (genre cout ou un fichier) :
int a,b,c;
string s = "hello";
[...]
ostringstream ss;
ss<<s<<"("<<a<<'-'<<b<<")";
MessageBox(hwnd,ss.str().c_str(),"MON TITRE",MB_OK);


voila c pratique qd c juste un debug a un point précis du programme :D

et puis ca peut éviter d'avoir un buffer de 512 statique
++
sebseb42 Messages postés 495 Date d'inscription dimanche 6 juillet 2003 Statut Membre Dernière intervention 9 novembre 2007 1
12 janv. 2004 à 20:53
ah oui aussi, la variable len, c'est au cas ou tu voudrais faire des traitement sur le buffer derriere, ca serais dommage de faire un strlen apres alors que _vsnprintf la renvoie, mais avoir des bonnes idées n'est pas donner a tout le monde
sebseb42 Messages postés 495 Date d'inscription dimanche 6 juillet 2003 Statut Membre Dernière intervention 9 novembre 2007 1
12 janv. 2004 à 20:50
alors lol et re-lol, je sais que tu m'aime pas JCDjcd mais la quand meme, c'est du gratuit...

"il ne faut absolument pas que le programme CONTINUE"

tu code un jeux, tu as pas d'outout mais tu veux connaitre la valeur d'une variable, par exemple la position z d'un objet, tu affiche et boum tu flingue ton jeux ? ca serais dommage quand meme... j'ai dit DEBUG, j'ai pas dit gestion d'erreur, il faut savoir lire entre les lignes mon p'tit gars

"il faut absolument pouvoir choisir la fenetre mere (le HWND ne doit pas etre par default =NULL)"

une application est une application, que tu ai une ou plusieurs fenetre, on s'en fout pas mal de savoir quel fenetre envoie la MsgBox puisqu'au final, on a le meme resultat

"Il faut pouvoir choisir les icones de la boite exclamation, error, interogation, hand, ...)"

qu'est-ce qu'on en a a foutre puisque c'est du DEBUG, c'est pour notre poire (le programmeur). tu mettrais des peintures hyper-cher sur tes murs avant de les recouvrir de papier peint ?

"ca evite de toujours declarer en local un buffer"

heu... CA declare toujours un buffer en local, relis le code si tu veux, il as pas changer, enfin tu pourrais declarer une fois en global, mais bon, c'est du code a l'arache

enfin pour conclure, je ne sais pas qu'elle est ta profession JCDjcd, mais j'espere juste pour l'avenir du logiciel que tu n'est pas analyste
cs_JCDjcd Messages postés 1138 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 25 janvier 2009 4
12 janv. 2004 à 19:12
excuse, je retifie, "il ne faut absolument pas que le programme CONTINUE"
cs_JCDjcd Messages postés 1138 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 25 janvier 2009 4
12 janv. 2004 à 19:11
deux petits problemes :

1) le jour ou il y a une erreur et que l'on veut afficher un message d'erreur, il ne faut pas que le programme se quitte, et comme dans beaucoup d'autres cas, il faut absolument pouvoir choisir la fenetre mere (le HWND ne doit pas etre par default =NULL)

2) Il faut pouvoir choisir les icones de la boite (exclamation,error,interogation,hand,...)


Ce qui est moins important c'est de choisir juste un boutton Ok, et la variable <len> serte a quoi ??


Sinon cette source est tres utile, dans le sens ou il permet le nombre variable d'arguments, et grace a ce genre de "sur-couche", ca evite de toujours declarer en local un buffer, et de tout refaire ...
Rejoignez-nous