cs_Kephren
Messages postés54Date d'inscriptiondimanche 25 novembre 2001StatutMembreDernière intervention19 mai 2003
-
31 mars 2002 à 10:48
cs_Kephren
Messages postés54Date d'inscriptiondimanche 25 novembre 2001StatutMembreDernière intervention19 mai 2003
-
31 mars 2002 à 21:02
Salut, je viens demander de l'aide à propos de mon programme. En fait il marche très bien mais depuis que j'ai rajoutée du code, une fois compilé, je le lance sans erreur et à la seconde qui suit y a une fenetre blanche avec dedans TEST.EXE A CAUSE UNE DEFAILLANCE DANS KERNEL32.DLL babalblallllalbaabablalblabl....
J'ai rajouté 2 portion de code. La 1ere marche si la 2eme est en commentaire, sinon ça fouare.
DOnc je ne vous montre pas tout le code car je sais que le reste marche bien.
------ le code avant c des déclarations etc... -------
float endvaleur;
float x;
char buffer[27];
int API....
...
....
BOOL CALLBACK MainDlgProc(HWND hwndDlg, UINT msg, WPARAM wParam,
LPARAM lParam)
{
switch (msg)
{
case WM_INITDIALOG:
......
case WM_COMMAND:
switch (LOWORD(wParam))
{
case IDTEXT:
x = GetDlgItemText(hwndDlg, IDTEXT, buffer,
sizeof(buffer));
endvaleur = x * 6.55957;
sprintf(buffer,"%.2f",endvaleur);
SetDlgItemText(hwndDlg,9,buffer);
break;
/* Ce code marche, si je met pas le truc qui a en dessous y a pas de problême. IDTEXT c'est le nom d'une edit box. Et le nombre "9" la 2eme edit box. Regardons le code d'apres qui fait fouarer */
case IDPOUET:
x = GetDlgItemInt(hwndDlg, 9, NULL, FALSE);
endvaleur = x / 6.55957;
sprintf(buffer,"%.2f",endvaleur);
SetDlgItemText(hwndDlg,7,buffer);
break;
/* Ca c'est le code fouareux. IDPOUET c'est le nom de la 2eme EDIT BOX (la numéro "9") et le nombre "7" c la 1ere edit BOX (celle du dessus). J'ai essayé de changer le nom des variables mais ça ne marche pas non plus. */
Donc si qqun pouvait m'aider ca serait cool :)
Allez @+++
si ce bout de code marche comme il faut je veux bien me pendre. Tes euros ne risque pas de se convertir en francs. GetDlgItemText a pour valeur de retour le nombre de caractères lus. Si tu tapes 10, 20 ou 30 il renvoie 2, donc tu auras toujours le meme resultat.
Dans les deux cas tu dois recuperer ta valeur, la transformer en float ou double, faire le conversion puis la retransformer en chaine de caractères.
Sinon tu peux aller voir mon code Convertisseur Euro (WIN 32) pour l'analyser et corriger le tien.
cs_Kephren
Messages postés54Date d'inscriptiondimanche 25 novembre 2001StatutMembreDernière intervention19 mai 2003 31 mars 2002 à 16:17
Merci pour ta réponse :)
En ce qui concerne ton prog à analyser, c'est déja fait; C'est toi même qui m'a donné envie de faire ce prog :) (j'ai d'ailleurs mis ton nom dans le prog hein)
Pour ce qui est du GetDlgItemInt, une personne dans le groupe google.com m'a dit la même chose. J'ai oublié de mettre à jour cette portion de code. Mais j'ai déja essayé avec GetDlgItemText pour les 2 et ça ne marche pas.
Je voulais aussi dire que le programme Crash méchamment c pas du Erreur non conforme je ne sais quoi :)
C'est la pitite fenetre blanche toute pourrave avec le message d'erreur KERNEL de la mort :p
Mon Programme ne se lance même pas aussi. C'est pas en tapant des valeurs que ça chie. Ca se lance même pas tu clique et vlan.
Donc voilà, qqun d'autre à une idée ?