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 :

[MFC] CString::Format()


Sujet :

MFC

  1. #1
    r0d
    r0d est d�connect�
    Membre exp�riment�

    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Ao�t 2004
    Messages
    4 295
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Ao�t 2004
    Messages : 4 295
    Billets dans le blog
    2
    Par d�faut [MFC] CString::Format()
    Bonjour � tous,

    je viens de tomber sur quelque chose d'�trange concernant la m�thode Format de la classe CString. Peut-�tre est-ce un bug, ou peut-�tre une mauvaise utilisation de ma part, mais j'ai perdu une bonne partie de la matin�e � cause de �a :/ Voici le code qui pose probl�me:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    CString csTemp="toto";
    int i=20;
    csTemp.Format("%s--%d",csTemp, i);
    Ce code fonctionne parfaitement bien sur mon pc (windows2000), mais je l'ai test� sur un pc portable (windows xp pro sp2), et l� �a plante avec un message d'erreur concernant un "malloc". L'exception est lev�e dans winheap.cpp (je n'ai pas plus de d�tail, je ne suis pas au bureau. Mais si le sujet vous int�resse, je pourrais vous en donner vendredi).

    Le fait est que, dans mon exemple, la m�thode Format utilise, en param�tre, une CString qui est elle-m�me ce que la m�thode doit retourner. Je comprends que cela puisse poser des probl�mes � l'ex�cution, mais pourquoi �a fonctionne sur une machine et pas sur une autre??

  2. #2
    R�dacteur
    Avatar de Laurent Gomila
    Profil pro
    D�veloppeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    D�tails du profil
    Informations personnelles :
    �ge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par d�faut
    Je comprends que cela puisse poser des probl�mes � l'ex�cution, mais pourquoi �a fonctionne sur une machine et pas sur une autre??
    La magie des comportements ind�termin�s.

  3. #3
    Expert confirm�
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (�le de France)

    Informations professionnelles :
    Activit� : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Par d�faut
    MSDN dit :
    The call will fail if the string object itself is offered as a parameter to Format. For example, the following code:

    CString str = "Some Data";
    str.Format("%s%d", str, 123); // Attention: str is also used in the parameter list.

    will cause unpredictable results

  4. #4
    r0d
    r0d est d�connect�
    Membre exp�riment�

    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Ao�t 2004
    Messages
    4 295
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Ao�t 2004
    Messages : 4 295
    Billets dans le blog
    2
    Par d�faut
    Ah oui, en effet. J'avais pourtant jet� un coup d'oeil sur ma msdn locale (celle install�e avec visual) et je n'ai pas vu cette remarque.

    Merci.

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

Discussions similaires

  1. R�ponses: 5
    Dernier message: 02/12/2014, 18h40
  2. [MFC] CString vers const char*
    Par Rafoo dans le forum MFC
    R�ponses: 9
    Dernier message: 17/06/2006, 15h43
  3. [MFC] CString et visual 2005
    Par r0d dans le forum MFC
    R�ponses: 8
    Dernier message: 20/03/2006, 14h50
  4. R�ponses: 1
    Dernier message: 02/12/2005, 14h18
  5. plantage a cause de CString::Format
    Par e-teo dans le forum MFC
    R�ponses: 2
    Dernier message: 18/10/2005, 18h02

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