Page 1 sur 1

A propos des LinkedList() dans les UserLib.

Publié : lun. 08/nov./2004 12:29
par Chris
Personne n'a encore trouvé un moyen d'utiliser une LinkedList() créée par la lib dans le programme principal?

J'ai essayé avec des pointeurs, mais franchement, je suis largué :x

Publié : lun. 08/nov./2004 12:58
par Crystal Noir
je sais qu'avec tailbite, suffit de créer la structure dans le prog annexe (procedure) puis de créer les procédure de création de linkedlist et ca marche.

Publié : lun. 08/nov./2004 13:37
par Chris
Crystal Noir a écrit :je sais qu'avec tailbite, suffit de créer la structure dans le prog annexe (procedure) puis de créer les procédure de création de linkedlist et ca marche.
J'ai rien compris :lol:

T'as pas un exemple?

Publié : lun. 08/nov./2004 14:02
par Anonyme2
Oui, moi aussi je capte rien

Un bon exemple :!:

Publié : lun. 08/nov./2004 14:21
par Le Soldat Inconnu
Sur TailBite, pour utiliser une LinkedList, il faut la mettre dans la procedure *_Init()

cette procedure est lancé dès qu'on se sert d'une fonction de la lib au début du programme.

Code : Tout sélectionner

ProcedureDLL Machin_Init()

  NewList Truc.l()

EndProcedure

Publié : lun. 08/nov./2004 14:30
par Crystal Noir
vala et après si par exemple vous voulez utiliser les Nextelement() pour faire un NextElement pareil on fait une procédure de la forme :

Procedure ElementSuivant()
ProcedureReturn NextElement()
EndProcedure

un truc du genre

Publié : lun. 08/nov./2004 14:41
par Anonyme2
Je me trompe peut-être mais j'aimerais un exemple qui marche...

La procédure qui commence par Init parmet d'initialiser un certain nombre de variables, liste chainées, mémoire, objects etc pour l'ensemble de la librairie mais cela reste pour la librairie.

Je continue à dire que ce n'est pas accessible directement depuis PB.

La solution reste le passage par pointeur.

Publié : lun. 08/nov./2004 14:46
par Le Soldat Inconnu
pour avoir accès à la lib depuis PB ?

oula, oui, il faut les pointeurs

déjà, il faut le truc de crystal ci-dessus

ensuite, il faut une fonction qui renvoie le pointeur

Code : Tout sélectionner

ProcedureDLL.l Liste()
  ProcedureReturn @truc()
Endprocedure
et dans le code du programme

Code : Tout sélectionner

*ElementListe = Liste()
pour pouvoir utiliser la liste chainée