Comment pourrait-on faire pour créer sa propre librairie contenant ses fonctions et où la mettre ?
Merci
Comment pourrait-on faire pour créer sa propre librairie contenant ses fonctions et où la mettre ?
Merci
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.
Je suis sous Builder 5.
Comment déclarer toutes les fonctions que j'ai besoin ?
Salutation, voila le cas d'une bibliotheque inutile:
dans le .h:
dans le .cpp ou .c
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
et dans la fiche ou tu veux utiliser ta bibliotheque:
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
ainsi, dans cette fiche, tu pouras faire:
Code : Sélectionner tout - Visualiser dans une fenêtre à part #include "Biblinaze.h"
Voila, j'espere ke ca t'a eclaircit!
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";
Bonne continuation
Cordialement
Walm
De rien Laurent, ce fut aussi un plaisir pour moi![]()
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 ?![]()
CA Y EST CA MARCHE ! :trouve:
Pour ceux que ça interesse, voici le code exact :
Dans le cpp avec notre fenêtre:
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
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(); } //---------------------------------------------------------------------------
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
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 SURTOUT, ne pas oublier d'ajouter au projet le cpp de 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
Voila c'est cool. Merci à tous!!!
![]()
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
Peut être qu'il est envisageable de caresser l'espoir...
d'avoir un TAG Resolu ?
Bon bah voila, on y est arrivé ...
Welcome in the great world of the bibiotheque
lol
Bonne continuation
Cordialement
Walm
Partager