Page 1 sur 1

tailbite et les listes chainées ?

Publié : mar. 15/juin/2004 9:38
par comtois
Voila le code que je tente de transformer en lib avec tailbite

Code : Tout sélectionner

Structure Scoubidou
  Pomme.l
  Poire.l
  Fraise.l
EndStructure

ProcedureDLL Malib_Init()
  NewList Tyty.Scoubidou()
EndProcedure

ProcedureDLL Titi(a,b)
  test.Scoubidou
  test\Pomme = a
  test\Poire = b
  test\Fraise = test\Pomme + test\Poire
  ProcedureReturn test\Fraise
EndProcedure

ProcedureDLL Essai(No.l)
  AddElement(Tyty())
  Tyty()\Pomme = No
  Tyty()\Poire = 456
  ProcedureReturn Tyty()\Poire
EndProcedure 
et la procédure d'essai

Code : Tout sélectionner

Debug Titi(4,6)

Debug Essai(34)

;Si je valide ces 3 lignes j'ai une erreur ! 
;ForEach Tyty()
;  Debug Tyty()\Pomme
;Next
Si je commente les 3 dernières lignes du code de test , j'obtiens bien 10 pour la procedure Titi() , et 456 pour Essai()
donc , la structure est reconnue , la liste chainée existe , et pourtant que je veux la tester dans le prog de test , j'ai une erreur , j'ai oublié quoi ?
comment faut-il faire ?

J'utilise la Version 1.1 PR 1.0 ( celle qu'on trouve sur le site purearea)
et je fais mes tests avec la 3.90 ( ça ne fonctionnait pas avec la 3.91beta)

Publié : mar. 15/juin/2004 10:26
par Le Soldat Inconnu
la liste n'existe que pour le la lib, pas pour le programme. du moins sous le même nom.
il faut considéré que les variable utilisées dans tailbite sont réservées à la lib donc innacessible du programme

si tu veux pouvoir l'utilisée, la seule solution est de retournée l'adresse mémoire de la liste chainée, et encore, je sais pas faire

Publié : mar. 15/juin/2004 10:30
par Dr. Dri
...

Publié : mar. 15/juin/2004 10:54
par comtois
ok merci à vous , je vais tester ça tout de suite :)

Publié : mar. 15/juin/2004 11:51
par nico
@Dr Dri, j'aurais mis un pointeur *pListe = nom_liste() :wink:

Publié : mar. 15/juin/2004 12:29
par Dr. Dri
Si j'avais fait *pListe j'aurais une variable *pListe... Tant qu'on a bien un long... C'est bon... Mais c'est vrai que pour rester cohérent je devrais faire comme ca

Dri

Publié : mar. 15/juin/2004 12:48
par Anonyme2
nico a écrit :@Dr Dri, j'aurais mis un pointeur *pListe = nom_liste() :wink:
Pour être rigoureux, on devrait mettre

*pListe.Scoubidou = nom_liste()

Publié : mar. 15/juin/2004 13:26
par Dr. Dri
...

Publié : mar. 15/juin/2004 15:06
par Anonyme2
Oui, mais en spécifiant le type , on accède facilement aux éléments de la structure sans avoir à modifier l'adresse de base. :wink: