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 :

VC++: impossible r�partir classe entre .h et .cpp


Sujet :

C++/CLI

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    8
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 8
    Par d�faut VC++: impossible r�partir classe entre .h et .cpp
    Bonjour,
    Je suis en train de me mettre � VC++...
    Jusqu'ici, avec d'autres EDI, je r�partissais mes classes entre un fichier .h (d�finitions de la classe) et un fichier .cpp (m�thodes de la classe).

    Or, avec VC++ express, je suis oblig� de tout mettre dans le header, et donc le .cpp ne me sert � rien. Ensuite, bien entendu il faut mettre les .h en question dans le fichier de la Form. Si j'essaie de r�partir mes sources de classe en .h et .cpp, j'ai des injures au link ! C'est quoi cette nouvelle mani�re de faire, o� il faut mettre tout le code dans les headers, et ensuite les inclure dans Form.h ?

    Y a -t-il un flag ou option � s�lectionner ?

    Hugo

  2. #2
    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
    Normalement, tu devrais pouvoir d�placer le corps des fonctions dans le .cpp sans probl�me, m�me si l'EDI met tout b�tement dans le .h.
    Si tu as des probl�mes au Linkage, c'est que tu dois avoir fait une erreur...

    (enfin, il me semble bien. Je ne suis pas trop s�r de moi sur ce coup-l�...)
    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 du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    8
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 8
    Par d�faut [R�solu] R�partir classe entre .h et .cpp
    �a y est j'ai compris comment cela fonctionne . En fait il faut utiliser le fichier stdafx.h et le mettre en #include dans vos fichiers. L� o� c'�tait pas �vident, c'est qu'il ne faut pas mettre dans vos fichiers le nom de votre .h.
    Voici un exemple, avec une forme qui s'appelle Bureau, une classe dans HCompiler.h, qui est d�velopp�e en HCompiler.cpp, avec le stdafx.h en bas:

    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
    52
    53
    54
    55
    56
    57
    58
    59
     
    // Fichier Bureau.h -----------------------------------------------------
    #pragma once				//<< Signifie "Ne lire qu'une fois".
     
    namespace EssaiDelegate {
     
    	using namespace System;
    	using namespace System::ComponentModel;
    	using namespace System::Collections;
    	using namespace System::Windows::Forms;
    	using namespace System::Data;
    	using namespace System::Drawing;
     
    	using namespace HughesLib;    //<<< Votre namespace ici.
    …………..
     
     
    // Fichier HCompiler.h ---------------------------------------------------
    #pragma once				//<< Signifie "Ne lire qu'une fois".
    namespace HughesLib {	//avec using dans Bureau.h, etc. si besoin.
     
    using namespace System;
     
    ref class HCompiler
    {
    delegate void PF();
    PF ^BinCode;
    String ^Resultat; 
    public:
    HCompiler();
    void F1() {Resultat+="F1;";}
    …………..
     
     
     
    // Fichier HCompiler.cpp ------------------------------------------------------
    #include "stdafx.h"
    namespace HughesLib {		//avec using dans Bureau.h, etc. si besoin.
     
    using namespace System;
     
    HCompiler::HCompiler(void)
    {
    Resultat="";
    BinCode=gcnew PF(this,&HCompiler::F1);
    }
    …………..
     
     
    // Fichier stdafx.h : -----------------------------------------------------
    // Fichier Include pour les fichiers Include système standard,
    // ou les fichiers Include spécifiques aux projets qui sont 
    // utilisés fréquemment, et sont rarement modifiés.
    #pragma once   //<< Signifie "Ne lire qu'une fois".
     
    // En-têtes supplémentaires nécessaires au programme:
    #include "MaClasse.h"
    #include "HCompiler.h"  //<<< Le point névralgique est ici !!!
    ………….
    Merci M�dinoc, et � ceux qui ont essay� de voir o� �tait ce pb.

    Hugo

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. couche de classe entre application et base de donnee
    Par Lord HaSaN dans le forum Acc�s aux donn�es
    R�ponses: 1
    Dernier message: 24/01/2007, 15h09
  2. R�ponses: 12
    Dernier message: 14/08/2006, 12h55
  3. R�ponses: 3
    Dernier message: 05/07/2006, 11h59
  4. classe iostream sous dev-cpp
    Par yashiro dans le forum Dev-C++
    R�ponses: 3
    Dernier message: 18/04/2006, 17h34
  5. R�ponses: 8
    Dernier message: 10/06/2005, 11h48

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