Librairies dans les Libraires

Programmation d'applications complexes
LeCyb
Messages : 273
Inscription : dim. 26/déc./2004 20:49

Librairies dans les Libraires

Message par LeCyb »

Imaginons que je fasse une librairie avec mes petites fonctions utiles que j'appellerai LibPerso.

Si je fais une librairie que je veux distribuer (disons LibPublic) qui utilise des fonctions de LibPerso, je suppose qu'il faut absolument donner les deux librairies ?

Si c'est le cas, y'a pas un moyen simple pour distribuer LibPublic sans devoir donner LibPerso ?
L'astuce c'est que j'ai pas mal de librairies perso et que j'utilise mes fonctions un peu partout et cela serait assez contraignant de les donner toutes ou de copier toutes les fonctions que j'utilise dans LibPublic.

Je vais illustrer par un petit exemple:

Je veux faire une lib FTP qui va utiliser des fonctions des librairies suivantes:
- MaLibNetwork (perso)
- MaLibError (perso)
- MaLibStructures (perso)
- MaLibDivers (perso)
- LaLibDroopy
- LaLibdeFred

Si j'utilise une ou deux fonctions de chaque librairie c'est super lourd d'aller les chercher, de copier le code (impossible pour les librairies des autres), d'enlever les lib perso, de tester et distribuer.
D'autant plus que pour chaque modification de la lib FTP je suis obligé de virer les lib pour faire du debug.
Vive le thread-safe !
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

A mon avis, si tu donnes le code de LibPublic, il faut aussi que tu donnes soit le code des fonctions de LibPerso, soit le lien vers LibPerso, puisqu'il faut avoir les libs pour programmer avec.

Par contre, si tu ne donnes pas le code, je pense que LibPublic se comporte comme une application ou une dll, et les fonctions de LibPerso sont importées dans LibPublic.

C'est une supposition, mais le mieux, ce serait de faire un essai en créant une lib bidon avec une ou deux fonctions de tes libs perso, et ensuite, de l'essayer en retirant les libs perso du dossier.
LeCyb
Messages : 273
Inscription : dim. 26/déc./2004 20:49

Message par LeCyb »

Après avoir testé, si LibPerso n'existe pas il n'est pas possible d'utiliser LibPublic.

Pour résoudre le problème faudrait p-ê avoir une option d'import, mais ça risque aussi de poser des soucis de doublons (?).

Je devrais suggérer la chose à qui à ton avis, Fred ou El_Choni ?
Vive le thread-safe !
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

LeCyb a écrit :Après avoir testé, si LibPerso n'existe pas il n'est pas possible d'utiliser LibPublic.

Pour résoudre le problème faudrait p-ê avoir une option d'import, mais ça risque aussi de poser des soucis de doublons (?).

Je devrais suggérer la chose à qui à ton avis, Fred ou El_Choni ?
T'as raison!
C'est un peu dommage d'être obligé d'avoir toutes les libs, surtout pour celles qui viennent de quelqu'un d'autre. Pas évident pour les mises à jour!
LeCyb
Messages : 273
Inscription : dim. 26/déc./2004 20:49

Message par LeCyb »

Pour le moment la solution la plus adaptée que j'ai trouvé c'est de ne pas utiliser de librairie tierces (celles où y'a jamais le code source là) et de copier toutes les fonctions des LibPerso dans la LibPublic en les renommant (genre LibPerso_Fonction).
Vive le thread-safe !
Avatar de l’utilisateur
Droopy
Messages : 1151
Inscription : lun. 19/juil./2004 22:31

Message par Droopy »

Je pense comme toi que c'est actuellement la seule solution
gansta93
Messages : 1448
Inscription : jeu. 26/févr./2004 11:17
Localisation : Le Village
Contact :

Message par gansta93 »

C'est domage, par exemple pour la fonction TB_DebugError(), ça veut dire que la personne qui va utiliser la lib est obligée d'avoir TailBite ou alors on doit distribuer la lib avec celle de El'Choni. Effectivement, ça remet bcp de choses en question.
El_Choni
Messages : 46
Inscription : dim. 07/mars/2004 20:19
Localisation : Espagne

Message par El_Choni »

Tu n'as pas besoin de distribuer la lib TB_DebugError. Si ça ne marche pas, c'est un autre bug de TailBite (un autre, buffff!)

Bonjour,
gansta93
Messages : 1448
Inscription : jeu. 26/févr./2004 11:17
Localisation : Le Village
Contact :

Message par gansta93 »

Non non, je supause seulement puisque d'après les conclusions que l'on a eu, il faut distribuer les libs autres utilisées pour qu'une lib fonctionne correctement. Mais s'il n'y a pas besoin de distribuer TB_DebugError, alors pourquoi faut-il distribuer les autres?
LeCyb
Messages : 273
Inscription : dim. 26/déc./2004 20:49

Message par LeCyb »

Coucou El_Choni :)

Je vais essayer de faire simple.

J'ai une librairie X que j'ai fait moi-même (et donc j'ai le code source).
J'ai une librairie Y que gangsta93 a fait (et je n'ai pas le code source).

Je fais une librairie Z qui utilise des procédures de X et Y.
Je veux donner la librairie Z à Fred.

Aujourd'hui si je veux faire cela je suis obligé de donner à Fred les 3 librairies.
Comment je peux faire pour ne donner qu'une seule librairie ?
Vive le thread-safe !
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

LeCyb a écrit :Coucou El_Choni :)

Je vais essayer de faire simple.

J'ai une librairie X que j'ai fait moi-même (et donc j'ai le code source).
J'ai une librairie Y que gangsta93 a fait (et je n'ai pas le code source).

Je fais une librairie Z qui utilise des procédures de X et Y.
Je veux donner la librairie Z à Fred.

Aujourd'hui si je veux faire cela je suis obligé de donner à Fred les 3 librairies.
Comment je peux faire pour ne donner qu'une seule librairie ?
Ben Fred, il a qu'à faire comme nous.
Il s'achete PureBasic parce que ça va pas si il n'a qu'une démo, il télécharge les libs, et c'est tout !

Non mais :lol:
Répondre