Bonjour � tous;
j'ai une classe d�clar�e dans un fichier tool.h, et impl�ment�e dans tool.cpp.
Ma question serais comment faire de cette classe qu'un seul fichier pr�compil� en .HPP
Merci � vous . :|
Version imprimable
Bonjour � tous;
j'ai une classe d�clar�e dans un fichier tool.h, et impl�ment�e dans tool.cpp.
Ma question serais comment faire de cette classe qu'un seul fichier pr�compil� en .HPP
Merci � vous . :|
Je comprends pas totalement ta question, surtout dans ton treme firchier pr�-compil� mais bon, je te dirai de faire ainsi :
fichier classe.h
fichier classe.cppCode:
1
2
3
4
5
6
7
8 class TRappel { private : /* Ce qu'il te faut */ public : void Show(); };
Et ce qui donnerai en regroupant le tout :Code:
1
2
3
4 void TRappel::Show () { Form->Show(); }
fichier classe.hpp
Si c'est ce que j'ai compris, sinon, bah dommage, en gros, tu mets directement ton code dans ta classe.Code:
1
2
3
4
5
6
7
8
9
10
11 class TRappel { private : /* Ce qu'il te faut */ public : void Show() { Form->Show(); } };
Non, mais merci qdmme,
je m'explique,
Une fois que la classe est inmpl�ment�e (que ce soit en deux fichier .h et .cpp, ou dans un seul), je veux compil� pour avoir qu'un seul fichier .HPP sans code source de ma classe, par exemple :
la fonction FileExists(MonFichier) : permet de savoir si le fichier MonFichier exist bien. Cette fonction fait partie de SysUtils.hpp, si on veux voir son impl�mentation: on ouvre le fichier SysUtils.hpp, mais l� on trouve que la d�claration.
Remarque :
Un fichier .HPP est un fichier pr�-compil�, donc comment faire avec ma classe :?: :?: l :arf:
Les fichiers .hpp sont des fichier ent�te tout comme les fichier .h
D'apr�s tes explication je pense plut�t que ce sont des librairies que tu veux faire : fichier .lib
Oui, Mais pour les fichiers .HPP on ne trouve pas d'autres fichier li�s comment par exemple :
Tool.h
Tool.cppCode:
1
2
3
4
5
6
7
8
9 class TRappel { private : /* Ce qu'il te faut */ public : void Show(); };
Mais dans un fichier .HPP on ne trouve que :Code:
1
2
3
4
5 void TRappel::Show () { Form->Show(); }
pas d'autre d�claration;Code:
1
2 void TRappel::Show () ;
entre-autre, pour les fichier .LIB, je m'int�resse, pouvez vous m'expliquez comment Linker, et surtout comment les utilis�s.
Merci :wink: :ccool:
Pour reprendre ton exemple avec SysUtils.hpp, il existe dans le dossier c:\Program Files\Borland\CBuilder6\Source\vcl un fichier sysutils.pas qui contient une fonction FileExists.
Tu as donc bien un fichier hpp li� � un fichier source.
Moi j'ai compris la question comme �a: tu aimerais pouvoir distribuer tes classes sans montrer le code, comme dans certains fichiers fournis avec Borland.
Ma r�ponse est que tu dois compiler tes classes. A partir des fichiers .h et .cpp, tu vas obtenir un nouveau fichier .obj
Tu peux distribuer uniquement le ".h" (l'interface de la classe) et le ".obj" (le code compil�). Les destinataires peuvent ainsi utiliser la classe (puisqu'ils ont � la fois l'interface et le code compil�) pour les inclure dans un nouveau projet.
Est-ce juste?
PS: Je ne l'ai encore jamais fait... Corrigez-moi si je dis des b�tises
:bravo: Tr�s exacte. Merci, pour le truc c'est top g�nial.
Mais je revien pour la technique des .LIB, comment faire
Si j'ai bien compris, idem pour les .LIB,
je compile ma calsse,
je copie les deux fichiers .h et .lib dans le dossier du nouveau projet,
j'ajoute � mon nouveau projet le .Lib
je fais un #include<...>
et le tour est jou�, n'es pas !!
MAIS LA, COMMENT COMPILER EN .LIB :?
Merci � tous.
Si j'ai bien compris, les .lib servent � d�crire les interfaces des dll.
On a l'�quivalent des .h et .obj:
.h = interface d'une classe/groupe de fonctions
.obj = code compil� d'une classe/groupe de fonctions
.lib = interface de la librairie
.dll = code compil� de la librairie
Tu dois faire le include du fichier .lib pour pouvoir utiliser la librairie correspondante. Par contre, je ne pense pas que le code de la dll soit inclu dans ton build... (pas trop s�r de ce point)
Ces lib qui sont associ�e � des dll sont appel�e librairies d'importation.Citation:
Si j'ai bien compris, les .lib servent � d�crire les interfaces des dll.
Mais on peut aussi faire des librairies static .lib qui contiennent le code et qui peuvent �tre li�es � un projet.
L'interface dans les deux cas est dans les fichier entetes .h ou .hpp
Sous BCB on peut cr�er des librairies en faisant nouveau -> biblioth�que.
:bravo:
Merci � tous.
MERCI DEVELOPPEZ :lahola: