IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

MFC Discussion :

Aide! Probl�me de conversion de CString en int et char*


Sujet :

MFC

  1. #1
    Membre �clair�
    Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    F�vrier 2007
    Messages
    246
    D�tails du profil
    Informations personnelles :
    �ge : 40
    Localisation : France

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels

    Informations forums :
    Inscription : F�vrier 2007
    Messages : 246
    Par d�faut Aide! Probl�me de conversion de CString en int et char*
    Bonjour,

    Je vous met le code o� j'ai un probl�me de conversion de CString en int et char*, le pb c'est ke je ne r�cup�re pas le bonnes informations, NumPort et TXrate re�oivent des merdes

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    void param_serie::OnBnClickedOk()
    {CModule_test1App *App=static_cast<CModule_test1App *>(AfxGetApp());
    	/* Récupèrer l'adresse de la classe CModule_test1App */
     int x,y,TXrate;
     char *NumPort;
     CString tmp1,tmp2;
     NumPort=new char (5);
     x=port.GetCurSel();  //on récupère les indices des combobox
     y=Brate.GetCurSel();
     port.GetLBText(x,tmp1);  //puis on récupère la chaine de caractère
     Brate.GetLBText(y,tmp2);
     NumPort=(char*)LPCTSTR(tmp1);  //et on les converties dans les types désirés
     TXrate=(int)LPCTSTR(tmp2);
     App->serie.modifPARAM(NumPort,TXrate);  //on passe en paramèters ces information afin de modifier
     //le port série en conséquence
     delete (NumPort);
     OnOK();
    param_serie c'est la classe de la bo�te de dialogue.

    Merci de votre aide .

  2. #2
    R�dacteur
    Avatar de farscape
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par d�faut
    salut,
    c'est truff� d'erreurs et d'horreurs ...
    pour les conversions en int voir faq : http://c.developpez.com/faq/vc/?page...ConvertCString

    tes affections de chaines sont fausses et dangereuses.
    pourquoi ne pas garder des objets CString ou string ?

  3. #3
    Membre �clair�
    Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    F�vrier 2007
    Messages
    246
    D�tails du profil
    Informations personnelles :
    �ge : 40
    Localisation : France

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels

    Informations forums :
    Inscription : F�vrier 2007
    Messages : 246
    Par d�faut Pk je pr�f�re les char* et les int plut�t que les CString
    Je vais r�pondre parce que je dois traiter les informations dans la m�thode modifPARAM (concat�nation de cha�ne, etc...) et je suis habitu� a Borland et au langage C je garde donc ces types de donn�es.

    En testant les fonctions strtod il me fait impossible de convertir un CString en const char*

    J'ai donc essay� ainsi

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    strtod ((const char*)tmp1,&NumPort);
    mais le pb reste.

    C'est chaud Visual studio pour les conversions en type simple.
    Dsl�e mais j'ai vraiment du mal avec ce compilateur mais je n'ai pas le chois (Le cahier des charges du projet me l'impose)

  4. #4
    R�dacteur
    Avatar de farscape
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par d�faut
    le compilateur n'a rien a voir avec �a ...
    garder ses habitudes de c dans un projet C++ est une mauvaise id�e qui commence d�j� a te jouer des tours ...
    qui a dit que strtod transformait une CString en char * ?
    relit le post de la faq �a parle de conversion de chaine en int ,float etc..

  5. #5
    Membre �clair�
    Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    F�vrier 2007
    Messages
    246
    D�tails du profil
    Informations personnelles :
    �ge : 40
    Localisation : France

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels

    Informations forums :
    Inscription : F�vrier 2007
    Messages : 246
    Par d�faut merci
    Merci bien je vais essayer d'oublier les char*. Ca va pas �tre une mince affaire :s. Mais bon qd il le faut ...

  6. #6
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    La FAQ ne prend pas en compte le fait que les CString puissent �tre Unicode.
    Si tu as une version r�cente de MFC, tu peux utiliser une CStringA qui est implicitement convertible en const char *.

    Sinon, tu devras rester en TCHAR jusqu'au bout, et faire tes conversions avec _tcstod() et _tcstol() (d�clar�es dans <tchar.h>) au lieu de strtod() et strtol()...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. conversion de bit en int, float, char, etc.
    Par ncheboi dans le forum D�buter
    R�ponses: 12
    Dernier message: 25/09/2010, 17h30
  2. Probl�me de conversion de CString en char *
    Par vonemya dans le forum C++
    R�ponses: 6
    Dernier message: 11/09/2007, 15h38
  3. [MFC] Probl�me de conversion CString vers Char *
    Par Darkenshin dans le forum MFC
    R�ponses: 10
    Dernier message: 02/12/2005, 14h42
  4. probl�me de conversion int[x] --> string
    Par poussinphp dans le forum SL & STL
    R�ponses: 2
    Dernier message: 17/08/2005, 14h45
  5. [CString -> int] Probl�me de conversion
    Par Manson dans le forum MFC
    R�ponses: 2
    Dernier message: 20/06/2005, 14h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo