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 ? :roll:
Y a -t-il un flag ou option � s�lectionner ?
Hugo
[R�solu] R�partir classe entre .h et .cpp
�a y est j'ai compris comment cela fonctionne :D . 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:
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