Les différences entre dll et librairies
-
- Messages : 43
- Inscription : mer. 15/déc./2004 16:28
Les différences entre dll et librairies
Bonsoir,
je suis nouveau dans ce forum, mais je vous lis depuis bien longtemps =)
je m'interresse a pure depuis quelques temps, et je me penche en ce moment a la création de librairies, avec tailbite...
voila mes questions
-quelle est la différence entre une librairie dite statique(userlibs) et et les librairies dynamique (dll) ?
-les variables d'une procedure d'une librairie semble etre indépendante par rapport a celles du programme principal, est-il possible d'utiliser des variables du programme principal dans une proceduredll ?
-si je place la commande Delay() dans une proceduredll, est-ce que ca stope tout le programme ou seulement la lib? en d'autre terme, les libs marchent-ils parrallèlement au programme, ou avec le programme?
voila=)
je suis nouveau dans ce forum, mais je vous lis depuis bien longtemps =)
je m'interresse a pure depuis quelques temps, et je me penche en ce moment a la création de librairies, avec tailbite...
voila mes questions
-quelle est la différence entre une librairie dite statique(userlibs) et et les librairies dynamique (dll) ?
-les variables d'une procedure d'une librairie semble etre indépendante par rapport a celles du programme principal, est-il possible d'utiliser des variables du programme principal dans une proceduredll ?
-si je place la commande Delay() dans une proceduredll, est-ce que ca stope tout le programme ou seulement la lib? en d'autre terme, les libs marchent-ils parrallèlement au programme, ou avec le programme?
voila=)
Salut,
C'est le but recherché d'ailleurs. Ca permet à d'autres programmes de l'utiliser.
Elle est dite dynamique parceque plusieurs programmes peuvent l'ouvrir / s'en servir en meme temps.
C'est l'OS (Windows) qui s'en charge de çà.
Une librairie, au sens Purebasic, celle que tu peux créer avec TailBite,
sera intégrer dans l'éxecutable pendant la compilation.
Donc pas de fichier externe, donc pas possible de le partager pour un autre programme.
Elle est dite statique parceque seul ton programme s'en sert.
Une fonction ne retourne un résultat qu'une fois son travail accompli.
Pendant ce temps là ton prog attends.
Si ce que tu dis était vrai, la programmation serait ingérable.
Faire travailler une fonction 'en parallèle' à ton programme nécessite une action volontaire de ta part.
Les 'Thread' te permettent de faire çà.

Une DLL reste externe à ton programme. C'est un fichier à part.quelle est la différence entre une librairie dite statique(userlibs) et et les librairies dynamique (dll) ?
C'est le but recherché d'ailleurs. Ca permet à d'autres programmes de l'utiliser.
Elle est dite dynamique parceque plusieurs programmes peuvent l'ouvrir / s'en servir en meme temps.
C'est l'OS (Windows) qui s'en charge de çà.
Une librairie, au sens Purebasic, celle que tu peux créer avec TailBite,
sera intégrer dans l'éxecutable pendant la compilation.
Donc pas de fichier externe, donc pas possible de le partager pour un autre programme.
Elle est dite statique parceque seul ton programme s'en sert.
comment çà ? je suis pas sûr de ce que tu demandes mais en principe non !les variables d'une procedure d'une librairie semble etre indépendante par rapport a celles du programme principal, est-il possible d'utiliser des variables du programme principal dans une proceduredll ?
Oui ca stoppera ton programme. Tout appel à une fonction prends du temps processeur.si je place la commande Delay() dans une proceduredll, est-ce que ca stope tout le programme ou seulement la lib? en d'autre terme, les libs marchent-ils parrallèlement au programme, ou avec le programme?
Une fonction ne retourne un résultat qu'une fois son travail accompli.
Pendant ce temps là ton prog attends.
Si ce que tu dis était vrai, la programmation serait ingérable.
Faire travailler une fonction 'en parallèle' à ton programme nécessite une action volontaire de ta part.
Les 'Thread' te permettent de faire çà.

-
- Messages : 43
- Inscription : mer. 15/déc./2004 16:28
Re: Les différences entre dll et librairies
Dans une librairie comme dans un programme, il faut distinguer les variables locales et les variables globales. Les variables globales sont accessibles des deux cotés mais tu dois fournir leurs adresses à ton programme ou ta librairie pour qu'ils puissent y avoir accès.Pacificator a écrit : les variables d'une procedure d'une librairie semble etre indépendante par rapport a celles du programme principal, est-il possible d'utiliser des variables du programme principal dans une proceduredll ?
Dernière modification par nico le ven. 17/déc./2004 0:04, modifié 1 fois.
-
- Messages : 43
- Inscription : mer. 15/déc./2004 16:28
ok, je comprend mieux
et si par exemple, je veux récuperer les coordonnées d'une entitée, je peux le faire directement depuis une librairie? (sans les déclarer global)
quand on utilise: Result = EntityX(#Entity), la librairie va t'elle trouver les coordonnée de l'entitée déclarée dans le prog principal?
sinon au sujet des adresses des variables, si g bien compris, il faut utiliser des pointeur nan?
et si par exemple, je veux récuperer les coordonnées d'une entitée, je peux le faire directement depuis une librairie? (sans les déclarer global)
quand on utilise: Result = EntityX(#Entity), la librairie va t'elle trouver les coordonnée de l'entitée déclarée dans le prog principal?
sinon au sujet des adresses des variables, si g bien compris, il faut utiliser des pointeur nan?
Dernière modification par Pacificator le jeu. 16/déc./2004 23:50, modifié 1 fois.
-
- Messages : 43
- Inscription : mer. 15/déc./2004 16:28
-
- Messages : 43
- Inscription : mer. 15/déc./2004 16:28
-
- Messages : 43
- Inscription : mer. 15/déc./2004 16:28
C'est mieux de ne pas utiliser des variables globales. C'est préférable de passer les coordonnées en paramètres à la librairie.Pacificator a écrit :ah merde!
ca veut dire qu'il faut d'abord récuperer les coordonnées dans les prog principal, puis les mettre en global avant de pouvoir les utiliser dans la lib?
-
- Messages : 43
- Inscription : mer. 15/déc./2004 16:28
Salut comtois, j'ai vu ta lib sur les matrice, et c'est vraiment balèze =)
je cherche à faire une lib pour mieux gerer la 3d, dans sa globalité...
les commandes sont assez inspirés dark basic
par exemple là je fais les commandes:
CameraFollowEntity(#camera,#entity,distanceMin,DistanceMax,hauteur,vitesse,souplesse)
CameraTrajectory(#camera,vitesse,souplesse,x1,y1,z1,x2,y2,z2[,x3,y3,z3,curve])
en gros je cherche a faire des commandes et des outils pour faire des jeux 3d, là je bosse sur les déplacements dans l'espace, en essayant de donner une cetaine souplesse dans les mouvements, et ca permet d'éviter les calculs trigonométrique complexe. Je vais aussi faire des commandes pour faire des rotations en absolu. Puis ensuite je vais tenter de faire une lib pour gerer les animations des entiées, parce que ca a pas l'air de bien marcher... je vais peut etre aussi faire un systeme climatique, mais c'est pas pour tout de suite et plus tard, je projette de faire un éditeur de terrain, ou on place les décors sur le terrain avec un simple click, mais là je sais pas comment je vais faire...
J'essaye de combler les lacunes du moteur 3d de pure.
quoi qu'il en soit c'est pas pour tout de suite...mais dès que j'aurais fini avec les déplacements, je ferais une annonce.
je cherche à faire une lib pour mieux gerer la 3d, dans sa globalité...
les commandes sont assez inspirés dark basic
par exemple là je fais les commandes:
CameraFollowEntity(#camera,#entity,distanceMin,DistanceMax,hauteur,vitesse,souplesse)
CameraTrajectory(#camera,vitesse,souplesse,x1,y1,z1,x2,y2,z2[,x3,y3,z3,curve])
en gros je cherche a faire des commandes et des outils pour faire des jeux 3d, là je bosse sur les déplacements dans l'espace, en essayant de donner une cetaine souplesse dans les mouvements, et ca permet d'éviter les calculs trigonométrique complexe. Je vais aussi faire des commandes pour faire des rotations en absolu. Puis ensuite je vais tenter de faire une lib pour gerer les animations des entiées, parce que ca a pas l'air de bien marcher... je vais peut etre aussi faire un systeme climatique, mais c'est pas pour tout de suite et plus tard, je projette de faire un éditeur de terrain, ou on place les décors sur le terrain avec un simple click, mais là je sais pas comment je vais faire...
J'essaye de combler les lacunes du moteur 3d de pure.
quoi qu'il en soit c'est pas pour tout de suite...mais dès que j'aurais fini avec les déplacements, je ferais une annonce.