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 :

Créer sa librairie ?


Sujet :

C++Builder

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    12
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 12
    Par défaut Créer sa librairie ?
    Comment pourrait-on faire pour créer sa propre librairie contenant ses fonctions et où la mettre ?

    Merci

  2. #2
    Membre éclairé Avatar de Bayard
    Inscrit en
    Juin 2002
    Messages
    863
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 863
    Par défaut
    Sous C++Builder 6 en Français : Fichier->Nouveau->Autres : Bibliothèque

    ensuite, il faut ajouter des fichiers .c ou .cpp

    Vous la mettez où bon vous semble. N'oubliez pas également d'avoir le
    fichier .h ou .hpp à un endroit dont vous vous rappelez.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    12
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 12
    Par défaut
    Je suis sous Builder 5.
    Comment déclarer toutes les fonctions que j'ai besoin ?

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 89
    Par défaut
    Salutation, voila le cas d'une bibliotheque inutile:
    dans le .h:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    #ifndef BiblinazeH
    #define BiblinazeH
    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
    void printfcoucou();
    AnsiString ReadEditTest(TEdit * Edit);
    bool __fastcall NeSertARien();
    #endif
    dans le .cpp ou .c
    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
    #include <vcl.h>
    #pragma hdrstop
    #pragma package(smart_init)
     
    void printfcoucou(){
        printf("coucou");
    }
     
    AnsiString ReadEditTest(TEdit * Edit){
        return Edit->Text;
    }
     
    bool __fastcall NeSertARien(){
        if(MessageDlg("Si ca sert a rien, dites-le",mtConfirmation,TMsgDlgButtons() << mbYes,mbNo, 0)== 7) return false;
    return true;
    }
    #endif
    et dans la fiche ou tu veux utiliser ta bibliotheque:
    ainsi, dans cette fiche, tu pouras faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     if( NeSertARien() ) Label1->Text = "C'est vrai que ca sert à rien";
    else Label1->Text = "Ha bah finalement, ca sert à kelke chose";
    Voila, j'espere ke ca t'a eclaircit!
    Bonne continuation
    Cordialement
    Walm

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    12
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 12
    Par défaut
    merci au moins c'est clair et divertissant

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 89
    Par défaut
    De rien Laurent, ce fut aussi un plaisir pour moi

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    12
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 12
    Par défaut
    Petit pbl, lors de la compilation, il me marque une erreur :

    [Lieur Erreur] Unresolved external '__fastcall NeSertARien()' referenced from C:\PROGRAM FILES\BORLAND\CBUILDER5\PROJECTS\UNIT1.OBJ

    Une solution ?

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    12
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 12
    Par défaut
    CA Y EST CA MARCHE ! :trouve:
    Pour ceux que ça interesse, voici le code exact :

    Dans le cpp avec notre fenêtre:
    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
     
    //---------------------------------------------------------------------------
     
    #include <vcl.h>
    #pragma hdrstop
     
    #include "Unit1.h"
    #include "Biblinaze.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm1 *Form1;
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
            : TForm(Owner)
    {
     
    }
    //---------------------------------------------------------------------------
     
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    if(NeSertARien())Label1->Caption="C'est vrai que ca ne sert a rien";
    else Label1->Caption="Ha ha finalement, ca sert a quelque chose";
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::QuitterClick(TObject *Sender)
    {
    Close();
    }
    //---------------------------------------------------------------------------
    Dans le fichier cpp de la librairie :
    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
     
    //---------------------------------------------------------------------------
     
    #include <vcl.h>
    #include "Biblinaze.h"
     
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
     
    void printfcoucou(){
            printf("coucou");
            }
     
    AnsiString ReadEditTest(TEdit *Edit){
            return Edit->Text;
            }
     
    bool __fastcall NeSertARien(){
            if(MessageDlg("Si ca ne sert a rien, dites-le",mtConfirmation,TMsgDlgButtons()<<mbYes<<mbNo,0)==7) return false;
            return true;
            }
    Et enfin, dans la librairie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    #ifndef BiblinazeH
    #define BiblinazeH
    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
    void printfcoucou();
    AnsiString ReadEditTest(TEdit *Edit);
    bool __fastcall NeSertARien();
    #endif
    Et SURTOUT, ne pas oublier d'ajouter au projet le cpp de la librairie.
    Voila c'est cool. Merci à tous!!!


  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 89
    Par défaut
    Salutation
    Lorsque tu crée ta bibliotheque, il faut faire nouveau->unité et non pas nouveau->fiche, comme t'as du faire.
    Une fiche contient des objets (d'ou ton .obj) alors qu'une unité n'est qu'une page .cpp ou .c associée a un .h ou un .hpp
    Voila
    Bonne continuation
    Cordialement
    Walm

  10. #10
    Membre éclairé Avatar de Bayard
    Inscrit en
    Juin 2002
    Messages
    863
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 863
    Par défaut
    Peut être qu'il est envisageable de caresser l'espoir...
    d'avoir un TAG Resolu ?

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 89
    Par défaut
    Bon bah voila, on y est arrivé ...
    Welcome in the great world of the bibiotheque
    lol
    Bonne continuation
    Cordialement
    Walm

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 21/11/2007, 08h32
  2. Réponses: 1
    Dernier message: 12/11/2007, 16h49
  3. [2.0]Créer une librairie
    Par stone dans le forum C#
    Réponses: 49
    Dernier message: 28/10/2007, 08h26
  4. Réponses: 4
    Dernier message: 24/03/2006, 16h49
  5. [C++]Créer des librairies statiques
    Par aiolia_aiolos dans le forum MFC
    Réponses: 3
    Dernier message: 04/01/2006, 12h05

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