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 :

fichiers h et cpp


Sujet :

MFC

  1. #1
    Inactif
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    23
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 23
    Par d�faut fichiers h et cpp
    Bonjour,
    J'ai cr�� un projet Win32 Console Application.
    Mon fichier projet.cpp est le suivant:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    #include "projetessai.h"
    int main(int argc, char* argv[]) 
    { 
       Personne p("u",0); 
       p.getNom(); 
       return 0; 
    }



    Mon fichier projet.h est le suivant:
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
     
    #ifndef PERSONNE_H
    #define PERSONNE_H
    #include "string.h"
     
    class Personne { 
     
    protected: // Membres protégés 
      char * nom; 
      char * adresse; 
     
    public:    // Membres publics 
     
      // Constructeur qui prend en paramètre une chaî;ne de caractères 
      // pour le nom et optionnellement une chaîne pour l'adresse 
      Personne(const char * name, const char * adress = 0) { 
        this->setNom(name); 
        this->setAdresse(adress);    
      }  
     
      // Retourne le nom de la personne 
      const char * getNom() const { return nom; } 
     
      // Défini le nom de la personne 
      void setNom(const char * name) { 
        if(name) { 
          nom = new char[strlen(name)]; 
          strcpy(nom, name); 
        } 
        else nom = 0; 
      } 
     
      // Retourne l'adresse de la personne 
      const char * getAdresse() const { return adresse; } 
     
      // Défini l'adresse de la personne 
      void setAdresse(const char * adress) { 
        if(adress) { 
          adresse = new char[strlen(adress)]; 
          strcpy(adresse, adress); 
        } 
        else adresse = 0; 
      } 
     
    };
     
    #endif
    J'ai bien employ� la r�gle des .h et .cpp et j'obtiens � la compilation du .cpp:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    fatal error C1010: unexpected end of file while looking for precompiled header directive
    Quel est le probl�me?

    Merci

  2. #2
    R�dacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414

  3. #3
    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
    Par d�faut
    salut,
    de plus ton code � un bug , le new que tu fais n'est pas assez grand
    c'est strlen(adress)+1 ,pour reserver la place du '\0' avec strcpy.
    et je ne vois pas la liberation de la memoire allou�e.
    utiliser la classe string de la stl evitrait ce genre de probleme..
    sauf si c'est un exercice avec les char *.

  4. #4
    Inactif
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    23
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 23
    Par d�faut
    l'histoire du \0 ne concerne pas le message d'erreur.
    De plus rajouter #include "stdafx .h" n'est pas la solution car le message demeure.

    Quel est donc le probl�me du petit programme pr�cedent, donc?

  5. #5
    R�dacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par d�faut
    il faut faire cet include en premier lieu

  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
    Par d�faut
    Citation Envoy� par patrick_lassaly
    l'histoire du \0 ne concerne pas le message d'erreur.
    De plus rajouter #include "stdafx .h" n'est pas la solution car le message demeure.

    Quel est donc le probl�me du petit programme pr�cedent, donc?
    excuse moi de t'avoir d�rang� .

  7. #7
    Inactif
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    23
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 23
    Par d�faut
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    #include "stdafx .h"
    #include "projetessai.h"
    int main(int argc, char* argv[]) 
    { 
       Personne p("u",0); 
       p.getNom(); 
       return 0; 
    }
    Cette fa�on ne fonctionne pas en rajoutant #include "stdafx .h"

  8. #8
    Inactif
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    23
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 23
    Par d�faut
    Que signifie "en premier lieu"?

  9. #9
    Membre extr�mement actif

    Homme Profil pro
    Ing�nieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 44
    Localisation : France, Essonne (�le de France)

    Informations professionnelles :
    Activit� : Ing�nieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Par d�faut
    include "projetessai.h"

    Mon fichier projet.h est le suivant:
    Ton fichier c'est projet.h ou projetessai.h ?

  10. #10
    Inactif
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    23
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 23
    Par d�faut
    .cpp:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
    #include "stdafx.h"
    #include "projetessaibis.h"
     
    int main(int argc, char* argv[])
    {  
    	Personne p("u",0); 
       p.getNom(); 
       return 0; 
    }
    .h:

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
     
     
    #ifndef PERSONNE_H
    #define PERSONNE_H
     
    #include "string.h"
     
     
     
    class Personne { 
     
    protected: // Membres protégés 
      char * nom; 
      char * adresse; 
     
    public:    // Membres publics 
     
      // Constructeur qui prend en paramètre une chaî;ne de caractères 
      // pour le nom et optionnellement une chaîne pour l'adresse 
      Personne(const char * name, const char * adress = 0) { 
        this->setNom(name); 
        this->setAdresse(adress);    
      }  
     
      // Retourne le nom de la personne 
      const char * getNom() const { return nom; } 
     
      // Défini le nom de la personne 
      void setNom(const char * name) { 
        if(name) { 
          nom = new char[strlen(name)]; 
          strcpy(nom, name); 
        } 
        else nom = 0; 
      } 
     
      // Retourne l'adresse de la personne 
      const char * getAdresse() const { return adresse; } 
     
      // Défini l'adresse de la personne 
      void setAdresse(const char * adress) { 
        if(adress) { 
          adresse = new char[strlen(adress)]; 
          strcpy(adresse, adress); 
        } 
        else adresse = 0; 
      } 
     
    }; 
     
    #endif
    message d'erreur:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     
     
    fatal error C1083: Cannot open precompiled header file: 'Debug/projetessaibis.pch': No such file or directory
    Quel est le probl�me?

  11. #11
    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
    Par d�faut
    ton parametrage de ton projet ne doit pas etre correcte : le fichier stdafx.h ne doit pas etre pr�sent ainsi que stdafx.cpp dans le projet (?).

    ou tu n'as pas choisis la bonne option pour la g�n�ration des entetes precompil�s. dans vc6 (onglet C++/precompiled headers) c'est la derniere option avec stdafx.h renseign� pour le nom.

    sinon tu as la possibilit� de desactiver l'option des entetes pr�compil�s dans ton projet.

  12. #12
    Membre extr�mement actif

    Homme Profil pro
    Ing�nieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 44
    Localisation : France, Essonne (�le de France)

    Informations professionnelles :
    Activit� : Ing�nieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Par d�faut
    stdafx.h n'est pas obligatoire tout comme stdafx.cpp surtout pour un projet console.

    #include "projetessaibis.h"
    Est-ce que ce fichier est inclus dans ton projet ? Est-ce que ce fichier existe physiquement dans le PATH ?

    PS : c'est quelle version de visual que tu as la .net ?

  13. #13
    Inactif
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    23
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 23
    Par d�faut
    projetessaibis.h est le nom du fichier .h qui existe dans le projet.
    C'est un petit programme tr�s simple.
    omettre la ligne concernant stdafx.h amm�ne l'erreur C1010

    Je demande la r�solution de l'erreur C1083 seulement.

    version: Visual C++ 6.0

  14. #14
    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
    Par d�faut
    Citation Envoy� par patrick_lassaly
    projetessaibis.h est le nom du fichier .h qui existe dans le projet.
    C'est un petit programme tr�s simple.
    omettre la ligne concernant stdafx.h amm�ne l'erreur C1010

    Je demande la r�solution de l'erreur C1083 seulement.

    version: Visual C++ 6.0
    Citation Envoy� par farscape
    ton parametrage de ton projet ne doit pas etre correcte : le fichier stdafx.h ne doit pas etre pr�sent ainsi que stdafx.cpp dans le projet (?).

    ou tu n'as pas choisis la bonne option pour la g�n�ration des entetes precompil�s. dans vc6 (onglet C++/precompiled headers) c'est la derniere option avec stdafx.h renseign� pour le nom.

    sinon tu as la possibilit� de desactiver l'option des entetes pr�compil�s dans ton projet.
    relis ce qui a �t� dit

  15. #15
    R�dacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par d�faut
    c'est meme le mieux

  16. #16
    Inactif
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    23
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 23
    Par d�faut
    Lorsque je s�lectionne not using precimpiled header files, je n'ai plus d'erreur � compile puis � build puis � execute.

    Cependant le probl�me demeure, en effet j'attends le r�sultat de l'ex�cution du programme, c'est � dire l'affichage de la fonction getNom() et j'obtiens "press any key to continue".

  17. #17
    Membre extr�mement actif

    Homme Profil pro
    Ing�nieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 44
    Localisation : France, Essonne (�le de France)

    Informations professionnelles :
    Activit� : Ing�nieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Par d�faut
    Citation Envoy� par patrick_lassaly
    Lorsque je s�lectionne not using precimpiled header files, je n'ai plus d'erreur � compile puis � build puis � execute.

    Cependant le probl�me demeure, en effet j'attends le r�sultat de l'ex�cution du programme, c'est � dire l'affichage de la fonction getNom() et j'obtiens "press any key to continue".
    Tu abuses un peu la...


Discussions similaires

  1. R�ponses: 0
    Dernier message: 31/08/2010, 15h13
  2. R�ponses: 4
    Dernier message: 05/05/2010, 16h50
  3. classe template separe en fichier header et cpp
    Par S_ami dans le forum Langage
    R�ponses: 6
    Dernier message: 03/06/2009, 11h30
  4. Convertion du fichier .exe vers .cpp
    Par p_programmeur dans le forum Autres �diteurs
    R�ponses: 1
    Dernier message: 11/04/2009, 18h24
  5. [POO] fichier .h et .cpp
    Par Royd938 dans le forum C++
    R�ponses: 9
    Dernier message: 18/07/2006, 10h19

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