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
Souris même si ton sourire est triste,
car s'il existe quelque chose de plus triste qu'un sourire triste,
c'est bien la tristesse de ne pas savoir sourire.
Guillaume
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.
Si tu ne vis pas ce que tu penses alors tu penses ce que tu vis.
Je suis sous Builder 5.
Comment déclarer toutes les fonctions que j'ai besoin ?
Souris même si ton sourire est triste,
car s'il existe quelque chose de plus triste qu'un sourire triste,
c'est bien la tristesse de ne pas savoir sourire.
Guillaume
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
merci au moins c'est clair et divertissant
Souris même si ton sourire est triste,
car s'il existe quelque chose de plus triste qu'un sourire triste,
c'est bien la tristesse de ne pas savoir sourire.
Guillaume
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 ?
Souris même si ton sourire est triste,
car s'il existe quelque chose de plus triste qu'un sourire triste,
c'est bien la tristesse de ne pas savoir sourire.
Guillaume
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!!!
Souris même si ton sourire est triste,
car s'il existe quelque chose de plus triste qu'un sourire triste,
c'est bien la tristesse de ne pas savoir sourire.
Guillaume
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 ?
Si tu ne vis pas ce que tu penses alors tu penses ce que tu vis.
Bon bah voila, on y est arrivé ...
Welcome in the great world of the bibiotheque
lol
Bonne continuation
Cordialement
Walm
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager