tailbite et les listes chainées ?

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

tailbite et les listes chainées ?

Message 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)
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message 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
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

...
Dernière modification par Dr. Dri le lun. 10/oct./2005 9:53, modifié 1 fois.
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

ok merci à vous , je vais tester ça tout de suite :)
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message par nico »

@Dr Dri, j'aurais mis un pointeur *pListe = nom_liste() :wink:
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message 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
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message 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()
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

...
Dernière modification par Dr. Dri le lun. 10/oct./2005 9:54, modifié 1 fois.
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message 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:
Répondre