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/Outlook/RecordSet] Problème de cast CString en Const char *


Sujet :

MFC

  1. #1
    Membre habitué Avatar de SmOkEiSBaD
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    234
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2008
    Messages : 234
    Points : 127
    Points
    127
    Par défaut [MFC/Outlook/RecordSet] Problème de cast CString en Const char *
    Bonjour à tous,
    Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if(strcmp((const char *)spRecordSetContact.m_CodTie.Trim(), (const char *)sCodTie) != 0 && strcmp((const char *)spRecordSetContact.m_CodCnt.Trim(), (const char *)sCodCnt) != 0 && spRecordSetContact.m_CodSoc != vCodSoc.intVal)
    spRecordSetContact.m_CodTie.Trim() => Renvoie CStringT et le cast fonctionne
    spRecordSetContact.m_CodCnt.Trim() => Renvoie CStringT et le cast fonctionne

    sCodTie => C'est une CString et le cast ne fonctionne pas
    sCodCnt => C'est une CString et le cast ne fonctionne pas

    Impossible de savoir pourquoi le cast ne fonctionne pas... Si vous avez une idée ?
    Merci.

  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
    Points : 17 323
    Points
    17 323
    Par défaut
    salut,
    tu ne serais pas en Unicode des fois ?
    ceci dit tu as des objets, pourquoi tu n'utilises pas les opérateurs de comparaisons (des objets) au lieu des fonctions C ?

  3. #3
    Membre habitué Avatar de SmOkEiSBaD
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    234
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2008
    Messages : 234
    Points : 127
    Points
    127
    Par défaut
    Bonjour,
    Effectivement je crois que je suis en Unicode, en fait j'ai déjà essayé la fonction String.Compare(const char *) si c'est à ça que tu pense.
    Merci.

  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
    Points : 17 323
    Points
    17 323
    Par défaut
    tu utilises que des CString ou il y a une string ?
    si il y a une string il faut utiliser std::wstring.
    de toute façon en unicode oubli const char *, utilise les opérateurs de comparaisons objet.

  5. #5
    Membre habitué Avatar de SmOkEiSBaD
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    234
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2008
    Messages : 234
    Points : 127
    Points
    127
    Par défaut
    Bonjour,
    Il n'y a pas de "string", seulement des CString des CStringA des CStringT...
    Je vais éssayé d'enlever l'Unicode on verra si cela fonctionne.
    Merci.

  6. #6
    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
    Points : 17 323
    Points
    17 323
    Par défaut
    alors je ne vois pas l'interet d'utiliser du C avec des objets qui savent faire des comparaisons...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if(spRecordSetContact.m_CodTie.Trim()!=sCodTie && spRecordSetContact.m_CodCnt.Trim()!=sCodCnt  && spRecordSetContact.m_CodSoc != vCodSoc.intVal)

  7. #7
    Membre habitué Avatar de SmOkEiSBaD
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    234
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2008
    Messages : 234
    Points : 127
    Points
    127
    Par défaut
    Euuu...
    error C2666: 'operator !=' : les 2 surcharges ont des conversions similaires

  8. #8
    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
    Points : 17 323
    Points
    17 323
    Par défaut
    il faudrait en savoir un peu plus sur la nature des objets ,CString ,CStringt etc ...

  9. #9
    Membre habitué Avatar de SmOkEiSBaD
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    234
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2008
    Messages : 234
    Points : 127
    Points
    127
    Par défaut
    Ok problème résolu...
    C'était de ma faute, alors dans un premier temps je ne cast pas en const char * mais en LPCSTR et ça compile.
    Après cela ne fonctionnait pas car j'avais enlever tout mes contacts de Outlook et je construisait un objet à partir d'un contact qui n'existait pas... Donc ça faisait n'importe quoi...

    Merci pour l'aide!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. problème de type int - DWORD - const char *
    Par dams77 dans le forum Débuter
    Réponses: 7
    Dernier message: 13/05/2010, 11h21
  2. Convertir CString en const char*: ca marche pas
    Par MDiabolo dans le forum Visual C++
    Réponses: 12
    Dernier message: 21/11/2006, 18h10
  3. [MFC] CString vers const char*
    Par Rafoo dans le forum MFC
    Réponses: 9
    Dernier message: 17/06/2006, 15h43
  4. [MFC - ATL] CString vers const char *
    Par VitamineC dans le forum MFC
    Réponses: 2
    Dernier message: 12/04/2006, 18h56
  5. Conversion CString en const char*
    Par LRobi dans le forum MFC
    Réponses: 8
    Dernier message: 19/07/2005, 12h12

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