Page 2 sur 3
Publié : ven. 22/oct./2004 22:49
par Crystal Noir
bah sinon tant pis ca sera en pb lol mais bon avec tailbite ca serait mieux.
Mais bon si ya rien à faire ou si vous n'arrivez pas à m'aider à trouver de solution, tant pis, je donnerai la v alpha en pb
Mais si vous avez des idées pour corriger ce pb n'hésitez pas :p
Publié : ven. 22/oct./2004 22:50
par Chris
D'après ton premier post, ta liste chainée est basée sur une structure, et c'est donc ta liste qui, normalement, remplis la structure.
Si tu dimensionne chaque champ de ta structure, tu dois pouvoir y envoyer directement les valeurs, sans passer par la liste, et tu peux, d'une part, voir si ta lib se crée correctement, et d'autre part, si tu peux récupérer tes valeurs dans le prog principal, en redéclarant la structure.
Publié : ven. 22/oct./2004 22:51
par Anonyme2
Sinon avec un pointeur ça doit marcher pile poil
Oui Chris, ça revient à utiliser un pointeur
Publié : ven. 22/oct./2004 22:51
par Crystal Noir
j'ai essayé de redéclarer ca marche pas
Qui plus est j'ai mama essayé de redéclarer et la structure et la liste dans le prog principale.
Là ca se lance mais retour à purebasic direct sans meme une image lol (écran noir).
Publié : ven. 22/oct./2004 22:54
par Chris
C'est vrai que c'est dommage d'avoir des liste chainée, et de ne pas pouvoir les utiliser entre la lib et le prog principal.
Celà dit, c'est vrai qu'avec un pointeur sur la LinkedList(), ça devrait fonctionner
Publié : ven. 22/oct./2004 22:56
par Crystal Noir
oui sauf que je ne sais pas comment ca marche ca :p
Publié : ven. 22/oct./2004 22:57
par Anonyme2
ProcedureDll_Init xyw()
NewLIst Variable.My_SuperStructure
endprocedure
Dans la lib une autre procédure qui retourne l'adresse de la liste
ProcedureDll AdresseListe()
Procedureturn @Variable()
Endprocedure
et depuis Pure
*Variable_1.My_SuperStructure = AdresseListe()
et là c'est la fêêêêêête
Publié : ven. 22/oct./2004 23:00
par Crystal Noir
pourquoi Variable_1 ? je comprend le début mais pas trop la fin.
Et quand tu veux changer la valeur d'une variable de ta structure ?
Publié : ven. 22/oct./2004 23:04
par Anonyme2
Variable utilisée dans la lib est inconnue du programme PureBasic donc je crée une autre varaible basée sur la même Structure, je l'ai appelée 1 pour qu'il n'y ait pas de confusion, mais normalement tu peux l'appeller comme tu veux.
Maintenant la syntaxe avec les pointeurs, tu accède bien à la variable qui tourne dans la lib.
Et on fait
*Variable1\premier_Champ = ...
*Variable1\deuxième_Champ = ...
*Variable1\troisième_Champ = ...
Le pointeur pointe bien sur une variable structurée.
Vite fait comme ça, je pense que ça doit marcher.
Publié : ven. 22/oct./2004 23:10
par Crystal Noir
euh....
Publié : ven. 22/oct./2004 23:16
par Crystal Noir
J'ai vraiment du mal lol me faudrait un exemple concrès je crois pffff à croire que je suis vraiment une daube !
Publié : ven. 22/oct./2004 23:20
par Anonyme2
Je viens de faire un petit essai .
Pour retourner l'adresse sans erreur, la liste chainée doit avoir au moins un élément sinon ça plante. Assure-toi de récupérer l'adresse après avoir ajouté un élément.
Publié : ven. 22/oct./2004 23:21
par Anonyme2
Code : Tout sélectionner
Structure essai
a.l
b.l
EndStructure
NewList z.essai()
Procedure adresse()
ProcedureReturn @z()
EndProcedure
AddElement(z())
*a.essai = adresse()
Debug *a
AddElement(z())
*a = adresse()
Debug *a
*a\a=10
Bonne nuit....
Publié : ven. 22/oct./2004 23:40
par comtois
Denis a écrit :Je pense que sa lib marche et que la variable sur la structure n'est appelée que dans la librairie, pas à l'extérieur.
Dis-moi si je me trompe Comtois, mais je ne pense pas.
C'est bien ça ,tu ne te trompes pas .
La liste chainée est utilisée uniquement dans la lib .
et si tu veux ajouter un element à ta liste chainée ,tu n'as qu'à créer une fonction pour ça
ProcedureDll AjouteUnTrucAMaListeChainee()
AddElement()
EndProcedure
et pis c'est tout ,comme ça ,tu peux ajouter et faire ce que tu veux depuis le programme , mais en passant par une commande de ta lib.
C'est ce que je fais pour créer une nouvelle matrice .
Publié : sam. 23/oct./2004 11:16
par Crystal Noir
oui c c eque j'ai fait déjà.
En fait il n'y a qu'une seule ligne de code qui le fait merder :p c'est la seule où j'utilise la liste chainée directement depuis le programme.
Vais essayé d'organiser ca autrement :p je vous tiens au courrant.
Car au final moi je veux que ce soit simple à utiliser pour l'utilisateur final, c pour ca que l'idée des pointeurs est bonne mais trop complexe.
Je vais essayé de voir comment faire :p