gagah1
Messages postés509Date d'inscriptionsamedi 28 juin 2003StatutMembreDernière intervention 3 août 2010
-
23 janv. 2004 à 22:07
cs_oliverman
Messages postés40Date d'inscriptionsamedi 14 décembre 2002StatutMembreDernière intervention 5 juillet 2007
-
27 avril 2004 à 16:23
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
cs_oliverman
Messages postés40Date d'inscriptionsamedi 14 décembre 2002StatutMembreDernière intervention 5 juillet 2007 27 avril 2004 à 16:23
pfff. Bon ben vraiment, le VC++ restera toujours un mystere pour moi.
Je vais me retaper mon code pour essayer de denicher une petite erreur. En tout cas ton prog marche tres bien.
Merci.
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 27 avril 2004 à 11:20
oliverman > comme prevu va nickel en dlgbox. Teste sur 98(nro indisponible, P200), XP et 2003 Server.
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 27 avril 2004 à 09:38
Je te refais l'exemple dans dialogbox.
On n'a pas a sauvegarder les 3 registres generaux (EAX,ECX,EDX), par contre EBX doit l'etre en prog Windows.
Tu reprendras zip des que maj de source sera faite.
cs_oliverman
Messages postés40Date d'inscriptionsamedi 14 décembre 2002StatutMembreDernière intervention 5 juillet 2007 27 avril 2004 à 09:09
Humm, en fait je pense avoir trouvé le probleme. Ma fonction, je l'ai appellé dans WM_INITDIALOG de mon callback, alors que si je l'appelle dans mon main, ca marche nikel. Je pense que ca bug parce que tu ne sauvegarde pas tes registre avant de t'en servir. Tu en pense quoi???
En tout cas, tu n'imagine meme pas comment ca m'aide.
Autre question, comment tu fais pour savoir autant de truc en VC??
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 26 avril 2004 à 15:56
Si tu respectes les conventions d'appel, aucune raison que ça deconne.
cs_oliverman
Messages postés40Date d'inscriptionsamedi 14 décembre 2002StatutMembreDernière intervention 5 juillet 2007 26 avril 2004 à 15:41
Merci, ca dechire!!!
Par contre, je me pose une petite question:
Quand je le mets dans le Winmain ca marche nikel, mais quand je creer une fonction, ca deconne. Tu n'aurais pas une idée d'ou pourrais venir mon probleme??
Merci!
BlackGoddess
Messages postés338Date d'inscriptionjeudi 22 août 2002StatutMembreDernière intervention14 juin 2005 26 janv. 2004 à 10:22
ah, bien merci pour ces précisions :)
(et la rapidité de réponse lol :p)
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 26 janv. 2004 à 10:15
__declspec(naked) empeche le compilo d'y foutre ses pattes completement, on ecrit donc asm vrai, des sauvegardes de registres jusqu'au retour de la fonction.
__stdcall est une des conventions d'appel ou c'est l'appele qui depile les params (API standard) a l'inverse de l'habitude C ou c'est l'appelant qui depile.
BlackGoddess
Messages postés338Date d'inscriptionjeudi 22 août 2002StatutMembreDernière intervention14 juin 2005 26 janv. 2004 à 10:09
a mais tres jolie source par contre :)
juste une petite chose :
__declspec(naked) sert si je me rappelle bien a virer l'entete de la fonction ? dans ce cas, a quoi ca sert de rajouter __stdcall qui spécifie une entete je crois ?
enfin ca doit bien etre utile, vu que si je l'enleve ca marche plus :p
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 26 janv. 2004 à 09:56
Ce genre de constante est inchangeable par qui que ce soit, meme et surtout par MS, plus aucun prog ne tournerait.
BlackGoddess
Messages postés338Date d'inscriptionjeudi 22 août 2002StatutMembreDernière intervention14 juin 2005 26 janv. 2004 à 09:50
mmh ... et puis si un jour MS decide pour une raison quelconque de changer, par exemple MB_ICONINFORMATION = 0 bin si tu avais pris 1/2 sec de ton précieux temps, bin ton prog marcherait tjs :p
le reprise de prog sont si compliqués a cause d'écriture comme ca...
enfin sur cette critique plutot négative, v voir la source :)
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 24 janv. 2004 à 12:38
ok mais je dois aussi composer avec ma memoire, 40 et 30 pour exclamation sont simples a retenir.
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 24 janv. 2004 à 12:30
Tu pourrais aussi écrire 64 qui est plus rapide à écrire que 0x40; en plus tu n'appuies qu'une fois sur shift.
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 23 janv. 2004 à 22:14
par flegme du clavier, t'as vu comme 0x40 est plus court ?
Pour info MB_OK vaut ZERO, alors utilite de ORer un nombre avec 0 ?
gagah1
Messages postés509Date d'inscriptionsamedi 28 juin 2003StatutMembreDernière intervention 3 août 2010 23 janv. 2004 à 22:07
Salut!!
On apprend pas mal des choses avec tes sources, mais dès fois tu compliques les instructions . Comme ici la fonction MessageBox(.....,0x40), pourquoi tu mets 0x40 au lieu de MB_ICONASTERIX|MB_OK , y a-t-il une difference? Merci.
27 avril 2004 à 16:23
Je vais me retaper mon code pour essayer de denicher une petite erreur. En tout cas ton prog marche tres bien.
Merci.
27 avril 2004 à 11:20
27 avril 2004 à 09:38
On n'a pas a sauvegarder les 3 registres generaux (EAX,ECX,EDX), par contre EBX doit l'etre en prog Windows.
Tu reprendras zip des que maj de source sera faite.
27 avril 2004 à 09:09
En tout cas, tu n'imagine meme pas comment ca m'aide.
Autre question, comment tu fais pour savoir autant de truc en VC??
26 avril 2004 à 15:56
26 avril 2004 à 15:41
Par contre, je me pose une petite question:
Quand je le mets dans le Winmain ca marche nikel, mais quand je creer une fonction, ca deconne. Tu n'aurais pas une idée d'ou pourrais venir mon probleme??
Merci!
26 janv. 2004 à 10:22
(et la rapidité de réponse lol :p)
26 janv. 2004 à 10:15
__stdcall est une des conventions d'appel ou c'est l'appele qui depile les params (API standard) a l'inverse de l'habitude C ou c'est l'appelant qui depile.
26 janv. 2004 à 10:09
juste une petite chose :
__declspec(naked) sert si je me rappelle bien a virer l'entete de la fonction ? dans ce cas, a quoi ca sert de rajouter __stdcall qui spécifie une entete je crois ?
enfin ca doit bien etre utile, vu que si je l'enleve ca marche plus :p
26 janv. 2004 à 09:56
26 janv. 2004 à 09:50
le reprise de prog sont si compliqués a cause d'écriture comme ca...
enfin sur cette critique plutot négative, v voir la source :)
24 janv. 2004 à 12:38
24 janv. 2004 à 12:30
23 janv. 2004 à 22:14
Pour info MB_OK vaut ZERO, alors utilite de ORer un nombre avec 0 ?
23 janv. 2004 à 22:07
On apprend pas mal des choses avec tes sources, mais dès fois tu compliques les instructions . Comme ici la fonction MessageBox(.....,0x40), pourquoi tu mets 0x40 au lieu de MB_ICONASTERIX|MB_OK , y a-t-il une difference? Merci.