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

  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 : 51
    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 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
    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 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
    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.

  7. #7
    Expert �minent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activit� : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par d�faut
    Salut,

    Heuu, question idiote s'il en est, mais, as tu vraiment besoin d'inclure le fichier d'en-t�te C stdio.h

    tu pourrais surement, si tu en as besoin, le remplacer avantageusement par iostream (entre autre, pour, justement �viter les conflits de SL )
    A m�diter: La solution la plus simple est toujours la moins compliqu�e
    Ce qui se con�oit bien s'�nonce clairement, et les mots pour le dire vous viennent ais�ment. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 f�vrier 2014
    mon tout nouveau blog

  8. #8
    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
    En effet en enlevant le stdio �a marche. Je n'y comprends vraiment rien... Du moins il compile ce petit bout de code.

    Mais pourquoi �a marche sans probl�me avec DevC++ et l� VC il nous fait une crise ? C'est quoi la diff�rence entre les deux compilateurs qui propose ce genre de probl�me ?

    Je ne comprends pas, et j'ai peur d'avoir encore ce genre de bug sur d'autres programmes, ou en continuant le mien, en chargeant une autre biblioth�que et en fichant tout en l'air � nouveau.

    EDIT : Ca marche aussi sur le programme complet... Ouf, je vais pouvoir utiliser VC++ pour d�bugger...

  9. #9
    Alp
    Alp est d�connect�
    Expert confirm�

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 36
    Localisation : France, Bouches du Rh�ne (Provence Alpes C�te d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Par d�faut
    En gros, lorsque tu fais appel � stdio.h, cela fait appel � une autre partie que celle o� est fstream.

    Si tu y fais appel, le compilateur devra lier les fichiers n�cessaires � ton programme. Seulement, l� les deux parties li�es entrent en conflit visiblement.

+ 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