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++Builder Discussion :

Convertir une classe en .HPP


Sujet :

C++Builder

  1. #1
    Membre Expert
    Avatar de kmaniche
    Inscrit en
    Janvier 2006
    Messages
    1 717
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 717
    Par défaut Convertir une classe en .HPP
    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 .

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 61
    Par défaut
    Je comprends pas totalement ta question, surtout dans ton treme firchier pré-compilé mais bon, je te dirai de faire ainsi :

    fichier classe.h

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    class TRappel
    {
    private :
    /* Ce qu'il te faut */
     
    public :
    void Show();
    };
    fichier classe.cpp

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    void TRappel::Show ()
    {
    Form->Show();
    }
    Et ce qui donnerai en regroupant le tout :
    fichier classe.hpp

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    class TRappel
    {
    private :
    /* Ce qu'il te faut */
     
    public :
    void Show()
         {
         Form->Show();
         }
    };
    Si c'est ce que j'ai compris, sinon, bah dommage, en gros, tu mets directement ton code dans ta classe.

  3. #3
    Membre Expert
    Avatar de kmaniche
    Inscrit en
    Janvier 2006
    Messages
    1 717
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 717
    Par défaut
    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

  4. #4
    CGi
    CGi est déconnecté
    Expert confirmé
    Avatar de CGi
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 061
    Détails du profil
    Informations personnelles :
    Localisation : France, Allier (Auvergne)

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 061
    Par défaut
    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
    Site : http://chgi.developpez.com

    Pourquoi faire simple quand on peut faire compliqué ? (Jacques Rouxel)

  5. #5
    Membre Expert
    Avatar de kmaniche
    Inscrit en
    Janvier 2006
    Messages
    1 717
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 717
    Par défaut
    Oui, Mais pour les fichiers .HPP on ne trouve pas d'autres fichier liés comment par exemple :

    Tool.h
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    class TRappel 
    { 
    private : 
    /* Ce qu'il te faut */ 
     
    public : 
    void Show(); 
    };
    Tool.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    void TRappel::Show () 
    { 
    Form->Show(); 
    }
    Mais dans un fichier .HPP on ne trouve que :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    void TRappel::Show () ;
    pas d'autre déclaration;

    entre-autre, pour les fichier .LIB, je m'intéresse, pouvez vous m'expliquez comment Linker, et surtout comment les utilisés.

    Merci

  6. #6
    Membre Expert
    Avatar de bakaneko
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 268
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 268
    Par défaut
    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.

  7. #7
    Membre chevronné

    Profil pro
    Inscrit en
    Juin 2005
    Messages
    351
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2005
    Messages : 351
    Par défaut
    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

  8. #8
    Membre Expert
    Avatar de kmaniche
    Inscrit en
    Janvier 2006
    Messages
    1 717
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 717
    Par défaut
    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.

  9. #9
    Membre chevronné

    Profil pro
    Inscrit en
    Juin 2005
    Messages
    351
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2005
    Messages : 351
    Par défaut
    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)

  10. #10
    CGi
    CGi est déconnecté
    Expert confirmé
    Avatar de CGi
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 061
    Détails du profil
    Informations personnelles :
    Localisation : France, Allier (Auvergne)

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 061
    Par défaut
    Si j'ai bien compris, les .lib servent à décrire les interfaces des dll.
    Ces lib qui sont associée à des dll sont appelée librairies d'importation.

    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.
    Site : http://chgi.developpez.com

    Pourquoi faire simple quand on peut faire compliqué ? (Jacques Rouxel)

  11. #11
    Membre Expert
    Avatar de kmaniche
    Inscrit en
    Janvier 2006
    Messages
    1 717
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 717
    Par défaut



    Merci à tous.


    MERCI DEVELOPPEZ

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Convertir une énumération Java en class C++
    Par yo0shii-78 dans le forum C++
    Réponses: 1
    Dernier message: 03/04/2015, 23h04
  2. [C#] Convertir le champ d'une classe en string
    Par Marsupilami_00 dans le forum C#
    Réponses: 9
    Dernier message: 28/08/2008, 18h39
  3. python C API: convertir une struct C en Class python
    Par dmichel dans le forum Interfaçage autre langage
    Réponses: 11
    Dernier message: 25/06/2008, 16h30
  4. Réponses: 0
    Dernier message: 29/10/2007, 14h28
  5. Sortir un typedef d'une classe
    Par Theophil dans le forum C++Builder
    Réponses: 13
    Dernier message: 03/07/2002, 17h21

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