[C API Win32] dialogox et double

Bonjour

J'essaie de récupérer un double à partir d'une boite de dialogue. Pour récupérer un entier, j'ai pas de souci. Mais récupérer un double, j'avoue que je sèche.
Si qqn à la solution...

Merci

5 réponses

  1. Il n'y a personne pour voler à mon secours?
    0
    1. C'est peut etre que personne ne comprends ce que tu veux faire ...
      Essaye avec la fonction strtod

      http://www.linux-kheops.com/doc/man/manfr/man-html-0.9/man3/strtod.3.html
      0
      1. salut

        J'ai essayé avec strtod et atof et j'ai toujours le même problème : seul le premier caractère est pris en compte.
        Voilà ce que je fais:

        dans la procédure de dialogue:

        case WM_COMMAND:
        {
        if (LOWORD(wParam) == IDOK )
        {

        char *string3;
        string3 = (char*)malloc(256*sizeof(char));

        GetDlgItemText(hDlg, IDE_EDIT3, string3, 256);
        EndDialog(hDlg, *string3);
        }
        return TRUE;
        }

        dans la procédure de fenêtre:

        double *coef;
        coef = (double*)malloc(sizeof(double));
        char *string3;
        string3 = (char*)malloc(256*sizeof(char));

        *string3 = DialogBoxParam(hinst, "DIALOG4", hEdit, (DLGPROC)Dialog4Proc, (LPARAM)hEdit);
        coef = atof(string3);
        free(string3);

        Vu que je suis débutant, je comprends pas trop ce qu'il se passe.
        0
        1. dans la procédure de fenêtre:
          
          double *coef;
          coef = (double*)malloc(sizeof(double));
          char *string3;
          string3 = (char*)malloc(256*sizeof(char));
          
          *string3 = DialogBoxParam(hinst, "DIALOG4", hEdit, (DLGPROC)Dialog4Proc, (LPARAM)hEdit);
          coef = atof(string3);
          free(string3);
          
          Vu que je suis débutant, je comprends pas trop ce qu'il se passe.


          quoi ??? oula !!!! Et tu ne comprends pas trop ce que tu fais je pense ... ;-)

          Bon y a du boulot.
          Avant de te lancer tête baissée dans la programmation un peu de lecture serait nécessaire :

          pour API WIndows : https://chgi.developpez.com/windows/

          Et surtout essai de prendre un bouquin sur le C, parce que la faut tout reprendre à la base ...
          Rien que pour la déclaration de coef, tu n'as pas besoin de le déclarer en pointeur et d'utiliser malloc !
          dans la procédure de fenêtre:
          
          double coef;
          char *string3;
          string3 = (char*)malloc(256*sizeof(char));
          
          /* .... remplissage de string3 */
          
          coef = atof(string3);
          free(string3);
          


          Ca ca marche très bien !

          De plus si tu fais :
          *string3 = ....;
          


          Tu ne vas remplir que le premier caractère de ta chaine de caracteres string3, car *string3 est equivalent à string3[0] !!!

          Et enfin DialogBoxParam ne s'utilise pas comme ca !
          Va faire un tour sur le lien que je t'ai donné et en particulier :
          https://chgi.developpez.com/windows/dlgcom/

          Bon courage...
          0
          1. salut

            merci pour tes conseils
            je me disais bien que il y avait qui clochait au niveau des pointeurs
            le tuto sur les api je connais
            mais je ne vois quand meme pas comment récupérer un double à partir de la boite de dialogue, je veux l'utiliser ensuite pour des calculs

            tophe
            0