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 :

Utiliser CFile... Problème de bibliothèques


Sujet :

MFC

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 5
    Points : 1
    Points
    1
    Par défaut Utiliser CFile... Problème de bibliothèques
    Bonjour,

    J'ai quelques notions de C++, mais uniquement sous Unix ou Linux. J'ai besoin de réaliser un tout petit programme en Visual C++ 6 qui vient lire un fichier sans ouvrir de fenêtre DOS.

    J'ai donc créé un projet application win32. J'ai pensé utiliser la classe CFile pour accéder à mon fichier.

    D'après ce que j'ai lu sur le forum, j'ai ajouté les inlcudes suivant dans mon stdafx.h pour pouvoir utiliser cette classe.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    #include <afx.h>
    #include <afxwin.h>
    et commenté
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    //#include de windows.h
    J'ai aussi linké dans les options les librairies LIBCMT.LIB et MSVCRT.LIB, ce qui a palié aux premières erreurs.

    Maintenant, au moment de build le tout en mode Release, j'obtiens les erreurs suivantes, ce qui me semble provenir d'incompatibilités des librairies.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Compiling...
    test4.cpp
    Linking...
    nafxcw.lib(afxmem.obj) : error LNK2005: "void __cdecl operator delete(void *)" (??3@YAXPAX@Z) already defined in libcp.lib(delop.obj)
    nafxcw.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadex
    nafxcw.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex
    libc.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
    Release/test4.exe : fatal error LNK1120: 3 unresolved externals
    Error executing link.exe.
     
    test4.exe - 5 error(s), 0 warning(s)
    Quelqu'un pourrait-il m'éclairer ? C'est quand même fou les problèmes que je rencontre pour un petit programme de rien du tout... même pour une première utilisation de Visual

    Merci d'avance !

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Août 2002
    Messages
    225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 225
    Points : 118
    Points
    118
    Par défaut
    Ajoute la ligne suivante dans tes includes :

    #include <process.h>

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Merci mais ... Ca ne semble pas résoudre le problème

  4. #4
    Membre habitué Avatar de BertrandA
    Inscrit en
    Août 2003
    Messages
    170
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 170
    Points : 197
    Points
    197
    Par défaut
    Project / Settings / Onglet C/C++
    Sélectionner "Code generation" dans la combo et remplacer l'option "Use runtime library" :
    - "Debug single threaded" par "Debug multithreaded" en configuration debug
    - "Single threaded" par "Multithreaded" en configuration release

    L'inclusion de <process.h> mentionné précédemment ne sert à rien.

    Tentative d'explication du problème :
    La librairie standard du C est disponible en plusieurs versions : single ou multithread. L'utilisation des MFC impose la version multithread de la librairie standard. A confirmer néanmoins.
    Les orteils servent à trouver les pieds de chaise et les montants de porte quand il fait noir.

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Merci bien

    Cette manip' m'a permis de supprimer les erreurs:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    nafxcw.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadex
    nafxcw.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex
    Il ne me reste plus que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    nafxcw.lib(afxmem.obj) : error LNK2005: "void __cdecl operator delete(void *)" (??3@YAXPAX@Z) already defined in libcpmt.lib(delop.obj)
    libcmt.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
    Release/test4.exe : fatal error LNK1120: 1 unresolved externals
    Error executing link.exe.
     
    test4.exe - 3 error(s), 0 warning(s)

  6. #6
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Points : 2 757
    Points
    2 757
    Par défaut Re: Utiliser CFile... Problème de bibliothèques
    Citation Envoyé par GregouzeLaLoose
    J'ai besoin de réaliser un tout petit programme en Visual C++ 6 qui vient lire un fichier sans ouvrir de fenêtre DOS.

    J'ai donc créé un projet application win32. J'ai pensé utiliser la classe CFile pour accéder à mon fichier.
    Pourquoi ne pas créer un projet MFC (donc avec interface), si tu veux utiliser des classes MFC (CFile) ? Là tu n'auras plus de problèmes.

  7. #7
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 5
    Points : 1
    Points
    1
    Par défaut Re: Utiliser CFile... Problème de bibliothèques
    Citation Envoyé par bigboomshakala
    Pourquoi ne pas créer un projet MFC (donc avec interface), si tu veux utiliser des classes MFC (CFile) ? Là tu n'auras plus de problèmes.
    Ben justement, je ne veux pas de fenêtre ou d'interface, je veux juste un éxécutable qui se lance tout seul, sans fenêtre DOS ou autre.

    Du coup c'est peut-être une erreur d'utiliser des CFile ? Je cherchais une classe qui me permette d'interagir facilement avec des fichiers.

    J'ai une version de mon programme qui tourne parfaitement mais en mode "Source C++", et qui donc ouvre une fenêtre DOS pour ne rien dire au moment de l'éxécution. Dans cette version, j'utilise la classe ifstream, classe que je n'ai pas réussi à utiliser en mode "application win32" (il ne reconnaît pas le mot ifstream).

    Comme vous le voyez, je patauge un peu avec Visual

    A la limite, je serai preneur d'une solution qui me permette d'utiliser la version fonctionnelle de mon programme mais sans la fenêtre DOS qui s'ouvre.

  8. #8
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Points : 2 757
    Points
    2 757
    Par défaut Re: Utiliser CFile... Problème de bibliothèques
    http://c.developpez.com/faq/vc/?page...s#HideWin32App

    et il n'y a pas de raison que ifstream ne soit pas reconnu si tu inclus le bon en-tête et que précise le namespace

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    include <fstream>
    ...
    std::ifstream file;

  9. #9
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Ben c'est justement l'une des premières choses que j'avais essayées. Sur le moment ça n'avait pas marché.

    Maintenant, ça marche.

    Comme quoi, laisser passer un peu de temps, ça aide.

    Ca ne résoud pas le problème des CFile, mais du coup je le contourne.

    Merci beaucoup en tous cas!

Discussions similaires

  1. [FPDF] Utiliser html2fpdf problème
    Par arsenik7 dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 29/12/2007, 23h24
  2. Problème fonction bibliothèque
    Par Matiou83 dans le forum C
    Réponses: 4
    Dernier message: 09/10/2006, 11h21
  3. Jeu SDL utilisant Winsock2, problème réseau
    Par TONIAPEL dans le forum C
    Réponses: 2
    Dernier message: 22/08/2006, 21h15
  4. [VBA-E]Problème de bibliothèque
    Par ouskel'n'or dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 16/07/2006, 01h45
  5. Utilisation CFile::Seek() et message d'erreur
    Par nmarf dans le forum MFC
    Réponses: 9
    Dernier message: 26/01/2006, 12h21

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