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++ Discussion :

Impossible de charger fstream.h correctement


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 34
    Par défaut Impossible de charger fstream.h correctement
    Bonjour,

    J'ai une petite question toute bête, mais impossible de trouver la réponse.

    Sur Dev-C++ j'utilise la bibliothèque "fstream.h" sans rien faire, ça marche. Sur VC++ 2005 Express, il y a bien un fstream.h dans Include/crt, mais impossible de l'utiliser. Si je l'insère dans les includes, au premier ofstream ou ifstream, j'ai le droit à un :

    error C2872: 'ofstream'*: symbole ambigu
    est peut-être 'c:\program files\microsoft platform sdk\include\crt\fstream.h(118)*: ofstream'
    ou 'c:\program files\microsoft platform sdk\include\crt\iosfwd(269)*: std::ofstream'

    Donc je pense que ce n'est pas comme ça qu'on charge fstream.h. Ou alors il faut ajouter un namespace (je vois un std dans l'erreur, pour moi std implique namespace), mais je n'ai toujours pas saisi le concept de namespace.

    Ca fait maintenant 4 ou 5 mois que j'utilise VC++ et je comprends toujours pas comment il marche... Et DevC++, ça va un peu, mais il bugge beaucoup trop souvent. Toutes les heures, j'ai le droit à un freeze quelconque, faut l'éteindre, le redémarrer, même en le réinstallant régulièrement.

    Si quelqu'un sait comment on charge fstream, ça m'arrangerait bien Si il manque une info pour pouvoir répondre, n'hésitez pas à la demander.

    Gouhouf

    EDIT : j'ai testé avec un <fstream> mais dans ce cas j'ai :
    error C2065: 'ifstream'*: identificateur non déclaré
    Cette fois il a trouvé fstream, mais il ne sait plus ce qu'est ifstream...

    EDIT2: En effet dans le programme que j'utilise j'ai un "using namespace std" au début pour utiliser le cout. Est-ce là le problème ?

    EDIT3: Il compile bien sans le "using namespace..." Mais pourquoi ? Je demande parce que j'ai peur d'avoir fait une autre bêtise qui me saute à la figure plus tard.

    EDIT4: Ca y est j'ai un : "LINK : fatal error LNK1104: impossible d'ouvrir le fichier 'msvcirtd.lib'" . Aucune idée si ça a un lien avec mon problème précédent.

  2. #2
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Yvelines (Île de France)

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

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Par défaut
    <fstream.h> n'est plus sensé exister depuis un certain temps. Seul <fstream> est supporté par la norme. Et il défini des objet dans le namespace std.

    Tu pourrais poster un programme tout bête qui reproduise le problème ?
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 34
    Par défaut
    Voilà un programme tout bête qui ne compile pas :

    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
    #include <stdio.h>
    #include "fstream.h"
    //#include "fonctions.h"
     
     
    int main(int argc, char **argv) {
     
     
    	ifstream fichier;
        char*    donnees;
     
        //Enregistrement du fichier
        //ouvrir_fichier(&fichier);
     
        //lire(&fichier,donnees);
     
    }
    (Ca ne marche pas non plus avec <fstream> ou <fstream.h>, et ça compile toujours aussi bien sous gcc. Mais pour le déboggage, fiou...)

    EDIT : J'ai réussi à débugger entièrement le programme sous devC++, il marche impec, mais toujours impossible de compiler avec VC++ :-/ A priori je n'ai plus besoin de réponses, mais si j'ai envie d'ajouter des options, j'aimerais tout de même pouvoir utiliser VC++.

  4. #4
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    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 395
    Par défaut
    C'est avec <fstream> que c'est censé marcher, plus le using namespace std; une fois tous les fichiers inclus.
    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.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 34
    Par défaut
    C'est encore plus moche :s

    J'ai tenté ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    #include <stdio.h>
    #include <fstream>
     
    using namespace std;
     
     
    int main(int argc, char **argv) {
     
     
    	ifstream fichier;
        char*    donnees;
     
    }
    Résultat :

    Compilation en cours...
    main.cpp
    .\main.cpp(12) : warning C4101: 'donnees'*: variable locale non référencée
    Édition des liens en cours...
    main.obj : error LNK2028: jeton non résolu (0A00002A) "public: virtual __thiscall std::logic_error::~logic_error(void)" (??1logic_error@std@@$$FUAE@XZ) référencé dans la fonction "public: __thiscall std::invalid_argument::invalid_argument(class std::invalid_argument const &)" (??0invalid_argument@std@@$$FQAE@ABV01@@Z)
    main.obj : error LNK2028: jeton non résolu (0A00002C) "public: __thiscall std::logic_error::logic_error(class std::logic_error const &)" (??0logic_error@std@@$$FQAE@ABV01@@Z) référencé dans la fonction "public: __thiscall std::invalid_argument::invalid_argument(class std::invalid_argument const &)" (??0invalid_argument@std@@$$FQAE@ABV01@@Z)
    main.obj : error LNK2028: jeton non résolu (0A000038) "public: virtual __thiscall std::runtime_error::~runtime_error(void)" (??1runtime_error@std@@$$FUAE@XZ) référencé dans la fonction "public: __thiscall std::ios_base::failure::failure(class std::ios_base::failure const &)" (??0failure@ios_base@std@@$$FQAE@ABV012@@Z)
    main.obj : error LNK2028: jeton non résolu (0A00003A) "public: __thiscall std::runtime_error::runtime_error(class std::runtime_error const &)" (??0runtime_error@std@@$$FQAE@ABV01@@Z) référencé dans la fonction "public: __thiscall std::ios_base::failure::failure(class std::ios_base::failure const &)" (??0failure@ios_base@std@@$$FQAE@ABV012@@Z)
    main.obj : error LNK2019: symbole externe non résolu "public: virtual __thiscall std::logic_error::~logic_error(void)" (??1logic_error@std@@$$FUAE@XZ) référencé dans la fonction "public: __thiscall std::invalid_argument::invalid_argument(class std::invalid_argument const &)" (??0invalid_argument@std@@$$FQAE@ABV01@@Z)
    main.obj : error LNK2019: symbole externe non résolu "public: __thiscall std::logic_error::logic_error(class std::logic_error const &)" (??0logic_error@std@@$$FQAE@ABV01@@Z) référencé dans la fonction "public: __thiscall std::invalid_argument::invalid_argument(class std::invalid_argument const &)" (??0invalid_argument@std@@$$FQAE@ABV01@@Z)
    main.obj : error LNK2001: symbole externe non résolu "public: virtual char const * __thiscall std::logic_error::what(void)const " (?what@logic_error@std@@UBEPBDXZ)
    main.obj : error LNK2019: symbole externe non résolu "public: virtual __thiscall std::runtime_error::~runtime_error(void)" (??1runtime_error@std@@$$FUAE@XZ) référencé dans la fonction "public: __thiscall std::ios_base::failure::failure(class std::ios_base::failure const &)" (??0failure@ios_base@std@@$$FQAE@ABV012@@Z)
    main.obj : error LNK2019: symbole externe non résolu "public: __thiscall std::runtime_error::runtime_error(class std::runtime_error const &)" (??0runtime_error@std@@$$FQAE@ABV01@@Z) référencé dans la fonction "public: __thiscall std::ios_base::failure::failure(class std::ios_base::failure const &)" (??0failure@ios_base@std@@$$FQAE@ABV012@@Z)
    main.obj : error LNK2001: symbole externe non résolu "public: virtual char const * __thiscall std::runtime_error::what(void)const " (?what@runtime_error@std@@UBEPBDXZ)
    main.obj : error LNK2001: symbole externe non résolu "public: __thiscall std::logic_error::logic_error(class std::logic_error const &)" (??0logic_error@std@@QAE@ABV01@@Z)
    main.obj : error LNK2001: symbole externe non résolu "public: __thiscall std::runtime_error::runtime_error(class std::runtime_error const &)" (??0runtime_error@std@@QAE@ABV01@@Z)

  6. #6
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    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 395
    Par défaut
    Eh bien il y a un progrès formiddable: La compilation se passe bien!

    C'est l'édition de liens qui foire. Mais je dois dire que je ne comprends pas pourquoi: Normalement Visual lie toujours à au moins une version de la bibliothèque runtime C++...
    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. Impossible de charger LIBMYSQL.DLL
    Par Dalès dans le forum Bases de données
    Réponses: 19
    Dernier message: 20/09/2006, 04h57
  2. [py2exe] Impossible de charger un module...
    Par Mr Hyde dans le forum Py2exe
    Réponses: 3
    Dernier message: 28/09/2005, 17h17
  3. Réponses: 19
    Dernier message: 09/09/2005, 16h44
  4. Impossible de charger un mesh...
    Par wikers dans le forum DirectX
    Réponses: 2
    Dernier message: 09/12/2004, 19h33
  5. [SERVLET][JDBC] Impossible de charger les pilotes
    Par cedric.picard dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 07/10/2004, 14h11

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