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

C++/CLI Discussion :

.c_str et Visual C++ == "error C2228" ?


Sujet :

C++/CLI

  1. #1
    Membre à l'essai
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Mai 2007
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Mai 2007
    Messages : 42
    Points : 20
    Points
    20
    Par défaut .c_str et Visual C++ == "error C2228" ?
    Bonjour a tous,
    j'ai un problème avec Visual C++ et la fonction ".c_str"...

    j'ai le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    fstream fichier;
    fichier.open(openFileDialog1->FileName.c_str(),fstream::in|fstream::out);
    dans un programme avec Visual C++ et lorsque je l'exécute il me retourne l'erreur suivante:
    error C2228 la partie gauche de '.c_str' doit avoir un class/struct/union

    alors que le même code sous C++ Builder6 marche très bien (enfin au nom de l'élément "openDialog" près puisque que ce n'est pas le même nom)...

    j'aimerais comprendre où est le problème et aussi le résoudre...

    je tiens à préciser que j'ai inclus les bibliothèques suivantes:
    #include<fstream>
    #include <string>
    #include <iostream>
    using namespace std;
    voila si vous avez des questions posez les mois...

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    Quel est le type de openFileDialog1 ?
    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.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Mai 2007
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Mai 2007
    Messages : 42
    Points : 20
    Points
    20
    Par défaut
    Citation Envoyé par Médinoc Voir le message
    Quel est le type de openFileDialog1 ?
    Très bonne question openFileDialog1 est l'élément qui permet de générer une fenêtre de dialogue pour choisir le fichier a ouvrir...
    cela retourne une chaine de caractère mais après je ne sais pas le type exacte...

  4. #4
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Points : 50 367
    Points
    50 367
    Par défaut
    Citation Envoyé par Loup solitaire Voir le message
    cela retourne une chaine de caractère mais après je ne sais pas le type exacte...
    Si tu ne nous donnes pas le type exact, on risque de ne pas te donner une réponse exacte
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  5. #5
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    tech lead c++ linux
    Inscrit en
    Août 2004
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : tech lead c++ linux

    Informations forums :
    Inscription : Août 2004
    Messages : 4 262
    Points : 6 680
    Points
    6 680
    Billets dans le blog
    2
    Par défaut
    C'est un COpenFileDialog de la MFC. Je déplace.
    « L'effort par lequel toute chose tend à persévérer dans son être n'est rien de plus que l'essence actuelle de cette chose. »
    Spinoza — Éthique III, Proposition VII

  6. #6
    Membre à l'essai
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Mai 2007
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Mai 2007
    Messages : 42
    Points : 20
    Points
    20
    Par défaut
    Voila vous avez là réponse merci r0d...

  7. #7
    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
    si FileName est une CString , enlève c_str().

  8. #8
    Membre à l'essai
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Mai 2007
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Mai 2007
    Messages : 42
    Points : 20
    Points
    20
    Par défaut
    voila se qui arrive quand j'enlève .c_str:
    error C2664: 'void std::basic_fstream<_Elem,_Traits>::open(const wchar_t *,std::ios_base::openmode,int)' : impossible de convertir le paramètre 1 de 'System::String ^' en 'const wchar_t *'

  9. #9
    Membre éclairé
    Avatar de PetitPapaNoël
    Développeur informatique
    Inscrit en
    Septembre 2006
    Messages
    559
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 559
    Points : 749
    Points
    749
    Par défaut
    Si openFileDialog1 est un pointeur sur un CFileDialog, dans ce cas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    openFileDialog1->FileName.c_str()
    doit être remplacé par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    openFileDialog1->GetFileName()

  10. #10
    Membre à l'essai
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Mai 2007
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Mai 2007
    Messages : 42
    Points : 20
    Points
    20
    Par défaut
    openFileDialog1 n'est pas un pointeur c'est le nom de l'élément openFileDialog qui est dans les outils de programmation graphique de Visual C++

    et si je le remplace comme tu a dit j'ai l'erreur qui suit:
    error C2039: 'GetFileName' : n'est pas membre de 'System::Windows::Forms::OpenFileDialog'

  11. #11
    Membre éclairé
    Avatar de PetitPapaNoël
    Développeur informatique
    Inscrit en
    Septembre 2006
    Messages
    559
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 559
    Points : 749
    Points
    749
    Par défaut
    Citation Envoyé par Loup solitaire Voir le message
    openFileDialog1 n'est pas un pointeur c'est le nom de l'élément openFileDialog qui est dans les outils de programmation graphique de Visual C++

    et si je le remplace comme tu a dit j'ai l'erreur qui suit:
    error C2039: 'GetFileName' : n'est pas membre de 'System::Windows::Forms::OpenFileDialog'
    Dans ce cas, pourquoi avoir répondu que r0d avait raison ?
    Citation Envoyé par r0d Voir le message
    C'est un COpenFileDialog de la MFC. Je déplace.

  12. #12
    Membre à l'essai
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Mai 2007
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Mai 2007
    Messages : 42
    Points : 20
    Points
    20
    Par défaut
    car je pensai qu'il avait compris de quoi je voulait parler...

    moi je ne sais pas se qu'un COpenFileDialogue ni la MFC...

    je n'ai qu'un ans de prog en C++ derrière moi et d'habitude j'utilise C++ Builder mais là je suis obliger d'utiliser Visual C++ pour mon stage...

  13. #13
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    tech lead c++ linux
    Inscrit en
    Août 2004
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : tech lead c++ linux

    Informations forums :
    Inscription : Août 2004
    Messages : 4 262
    Points : 6 680
    Points
    6 680
    Billets dans le blog
    2
    Par défaut
    Lol!

    Désolé... Allez, on déplace vers C# ?

    edit: tu pourrais tout de même essayer de savoir un minimum de quoi tu parles avant de poser des question

    edit2: j'y pense brusquement... si tu essaie d'utiliser la STL (streams, etc) dans une appli en C#, et bien autant te prévenir tout de suite: ce n'est pas possible.
    « L'effort par lequel toute chose tend à persévérer dans son être n'est rien de plus que l'essence actuelle de cette chose. »
    Spinoza — Éthique III, Proposition VII

  14. #14
    Membre à l'essai
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Mai 2007
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Mai 2007
    Messages : 42
    Points : 20
    Points
    20
    Par défaut
    je ne sais pas où cela doit ce mettre une chose est sur je programme en C++ avec Visual C++ donc après a vous de voir où ça vas...

    Edit:j'ai déjà appris a me servir de Visual C++ avent de venir c'est pas mal non?
    ensuite je suis en train de me renseigner sur la MFC car je ne connaissais pas avent...

  15. #15
    Membre éclairé
    Avatar de PetitPapaNoël
    Développeur informatique
    Inscrit en
    Septembre 2006
    Messages
    559
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 559
    Points : 749
    Points
    749
    Par défaut
    Citation Envoyé par r0d Voir le message
    Lol!Désolé... Allez, on déplace vers C# ?
    Je n'y connais rien en C++/CLI, mais tu ne crois pas que c'en est ?

  16. #16
    Membre à l'essai
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Mai 2007
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Mai 2007
    Messages : 42
    Points : 20
    Points
    20
    Par défaut
    Citation Envoyé par r0d Voir le message
    edit2: j'y pense brusquement... si tu essaie d'utiliser la STL (streams, etc) dans une appli en C#, et bien autant te prévenir tout de suite: ce n'est pas possible.
    alors tu peux me dire pourquoi ma commande marche parfaitement sous C++ Builder6 ???

    ou alors on c'est encore mal compris...

  17. #17
    Membre éclairé
    Avatar de PetitPapaNoël
    Développeur informatique
    Inscrit en
    Septembre 2006
    Messages
    559
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 559
    Points : 749
    Points
    749
    Par défaut
    Bon, il ne s'agit pas de MFC. J'ai déplacé la discussion dans C++/CLI. On va voir ce que les spécialistes en pensent...

  18. #18
    Membre à l'essai
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Mai 2007
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Mai 2007
    Messages : 42
    Points : 20
    Points
    20
    Par défaut
    Citation Envoyé par PetitPapaNoël Voir le message
    Bon, il ne s'agit pas de MFC. J'ai déplacé la discussion dans C++/CLI. On va voir ce que les spécialistes en pensent...
    lool une fois que le sujet auras fait tout les forums on serra fixer sur là ou il doit allez...

    bon pour ceux qui viennent d'arriver j'ai un soucis avec cette partie de code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    fstream fichier;
    fichier.open(openFileDialog1->FileName.c_str(),fstream::in|fstream::out);
    qui fonctionne sous C++ Builder6 mais pas sous Visual C++ (comme par hasard est le logiciel que je doit utiliser pour faire mon programme...)

  19. #19
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    tech lead c++ linux
    Inscrit en
    Août 2004
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : tech lead c++ linux

    Informations forums :
    Inscription : Août 2004
    Messages : 4 262
    Points : 6 680
    Points
    6 680
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Loup solitaire Voir le message
    alors tu peux me dire pourquoi ma commande marche parfaitement sous C++ Builder6 ???

    ou alors on c'est encore mal compris...
    C++ builder c'est une IDE pour faire du C++ (il a donc un compilateur C++).

    Les Winform, c'est une partie du framework .Net, ce n'est pas du C++.
    « L'effort par lequel toute chose tend à persévérer dans son être n'est rien de plus que l'essence actuelle de cette chose. »
    Spinoza — Éthique III, Proposition VII

  20. #20
    Membre à l'essai
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Mai 2007
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Mai 2007
    Messages : 42
    Points : 20
    Points
    20
    Par défaut
    a oki, ça j'ai compris xD pour ceux qui veulent la version des .Net que j'ai c'est les 3.5...
    Edit(après déplacement): et hop retour a la case départ...

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Quote et double quote
    Par aktos dans le forum Langage
    Réponses: 8
    Dernier message: 05/01/2007, 19h55
  2. Réponses: 2
    Dernier message: 08/06/2006, 10h43

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