Page 1 sur 1

[Résolu] Y a t-il une différence entre DLL et library??

Publié : sam. 18/déc./2010 13:16
par anissa
Bonjour

J'ai vu quelque part sur ce forum (je ne me rappelle plus où c'est), une méthode pour créer une bibliothèque proposée je crois par Dobro. L'utilisation de JapBe était proposée. Y a til une différence entre cette proposition et celle là?

Code : Tout sélectionner

If OpenLibrary(0, "PureBasic.dll")
CallFunction(0, "MaFonction")
CloseLibrary(0)
EndIf
Merci

Re: Y a t-il une différence entre DLL et library??

Publié : sam. 18/déc./2010 14:15
par Backup
un tuto existe sur le forum (voir index des tutos)

qui explique comment creer une librairie
et du coup comment on s'en sert !! ;)

une dll c'est un fichier remplis de fonctions (procedures) que ton prg va appeler a la demande

une librairie Purebasic
c'est une collection de fonctions (procedureDLL()) mais qui sont disponibles directement au moment de la création de ton prg (elle seront donc inclues a la compilation... pas de fichier externe)

lorsque tu utilise une fonction purebasic (clearscreen() displaysprite() ) , tu utilise en fait une procedure , contenue dans une librairie !
bref en purebasic on a les moyens de se faire nos propres librairies de fonctions
(grace a Tailbite ou Moebius)
donc d'étendre le langage, avec nos propres collections de procédures .... autrement appelées
"Librairie" :D
une librairie etant un ensemble de "livres" , ici c'est un ensemble de procedure() (Fonctions)

l'inconvénient majeur c'est qu'une librairie "maison" n'est compatible souvent que pour une version bien précise de purebasic....
puisque cette librairie maison, fait appel aux fonctions "Purebasic" (librairie "hard" inclues dans le langage des le départ (voir dossier "PureLibraries")..)

autre inconvénient , un prg qui emploi une librairie , empêche le partage sur le forum
puisque il nous faudra disposer de la libraire pour pouvoir utiliser nous aussi le code partagé, faisant appel a cette librairie...

c'est la raison pour laquelle , beaucoup de gens ,n'aime pas les librairies maison
sauf s'ils disposent du code source , pour faire une adaptation ...
;)

sinon ,en tant qu'utilisateur d'une librairie Maison, le jour ou l'auteur disparait, on se retrouve avec une librairie qui risque de devenir obsolète a la prochaine version de purebasic :)

Re: Y a t-il une différence entre DLL et library??

Publié : sam. 18/déc./2010 17:13
par anissa
Bonsoir Dobro

Merci pour cette bonne information mais j'avoue que c'est un tout petit peu compliqué pour moi. J'ai l'habitude d'utiliser des DLL simples mais une bibliothèque non, mais c'est très intéressant car j'ai compris le principe mais pas à 100%. D'après les exemple du tuto, on peut faire par exemple:

Code : Tout sélectionner

X=MaBiblio(20)
;MaBiblio est une fonction (ProcedureDLL) créée grâce à  TailBite?? 


Justement, puis-je avoir le lien pour télécharger Tailbite?

Est-ce que TailBite suffit pour créer une biblio?

Est-ce que je pourrais m'en passer de JapBe?

Est-ce que la biblio doit être fournie avec mon exécutable ?

Excuses moi pour toutes ces questions mais ... on est là pour ça n'est ce pas?

Merci encore de votre aide.

(Un petit exemple plus simple que celui du tuto serait bien le bienvenu).

Anissa

Re: Y a t-il une différence entre DLL et library??

Publié : sam. 18/déc./2010 17:39
par Backup
anissa a écrit :Bonsoir Dobro

Merci pour cette bonne information mais j'avoue que c'est un tout petit peu compliqué pour moi. J'ai l'habitude d'utiliser des DLL simples mais une bibliothèque non, mais c'est très intéressant car j'ai compris le principe mais pas à 100%. D'après les exemple du tuto, on peut faire par exemple:

Code : Tout sélectionner

X=MaBiblio(20)
;MaBiblio est une fonction (ProcedureDLL) créée grâce à  TailBite?? 


Justement, puis-je avoir le lien pour télécharger Tailbite?

Est-ce que TailBite suffit pour créer une biblio?

Est-ce que je pourrais m'en passer de JapBe?

Est-ce que la biblio doit être fournie avec mon exécutable ?

Excuses moi pour toutes ces questions mais ... on est là pour ça n'est ce pas?

Merci encore de votre aide.

(Un petit exemple plus simple que celui du tuto serait bien le bienvenu).

Anissa
Taillbite fait partie de japbe
pour faire une lib il suffit d'aller dans le menu "Projet" puis Tailbite

l'editeur doit contenir une ou plusieurs proceduredll()

on va faire une librairie avec une seul fonction :

Code : Tout sélectionner

ProcedureDLL.l double(nombre)
  ProcedureReturn nombre*2
EndProcedure

cette fonction multiplie par 2 un chiffre !
ya pas plus simple ;)


tu colle ce code dans l'editeur Japbe
tu lance taillbite , tu donne un nom a ta librairie (en general c'est le nom de sauvegarde du listing)

apres compilation Tailbite aura generé dans le dossier Librairie utilisateur
une nouvelle lib (du nom que tu lui a donné)

dans >Japbe le compilateur aura meme été relancé automatiquement

dorénavant ton purebasic aura une nouvelle commande "double(nombre)"

si tu utilise l'editeur vierge , et que tu tappe

debug double(12)

ça va te retourner 24 !! voila

non ton prg n'a rien a fournir , c'est l'intérêt même des librairies comparé au DLL !
a l'image du Forth , Purebasic grace au librairie permet de se creer son propres langage
en y ajoutant ses propres "commandes"

Re: Y a t-il une différence entre DLL et library??

Publié : dim. 19/déc./2010 16:56
par anissa
Merci beaucoup Dobro

C'est très intéressant. Je viens de télécharger JapBe et j'ai réussi à créer une library. J'ai testé
et ça marche à merveille. Merci encore. J'ai juste une dernière question sur ce sujet:

Peut on créer plusieurs procédures dans une même library? Je veux dire y a t il une limite point de vue nombre de procédures?

Bonne soirée

Anissa

Re: [Résolu] Y a t-il une différence entre DLL et library??

Publié : dim. 19/déc./2010 18:06
par Backup
librairie signifie justement un ensemble de procedures!!
c'est fait pour !!
(j'ai fait une analogie avec les livres dans mes reponses ci dessus.... )

pas de limite !!
les procedure non utilisés dans un codes, ne sont en principe pas inclues dans l'exe finale ! ;)