comme deja maintes fois expliqué
je ne cherche pas une solution pour remplacer !!
mais bel et bien que Fred fasse quelque chose au For-next du purebasic
qui est une gentille blague par rapport aux autres basic !!
plusieur return procedure (et procedure dll)
Je me case dans le débat sans avoir lu ce qui a été dit précédemment. Ca fait longtemps que je ne suis pas passé sur les forums PB et j'ai pas la force de lire tous les nouveaux posts...
Il n'est pas "possible" de faire ce qui est demandé parce qu'un fichier dll ne permet tout simplement pas de retourner plusieurs valeurs dans une fonction. Dans la mesure où ces fichiers répondent à une "convention d'appel des procédures" (stdcall ou CDecl) et commes ces bibliothèques sont prévues pour être partagées on doit s'aligner sur la norme.
Maintenant il n'est pas impossible de retourner plusieurs valeurs. Il suffirait de pouvoir affecter des structures.
Du coup, retourner plusieurs valeurs reviendrait à retourner une structure
Il existe des langages compilés qui proposent de retourner plusieurs variables d'un type différent.
Là encore un système de structure anonyme est utilisé. En tout cas dans les langages que je connais. L'idéal serait vraiment de pouvoir affecter des structures, et à terme redéfinir les opérateurs des types autres que les types de base.
Je pense qu'à partir de là on pourrait avoir ce genre de méchanisme ^_^
Dri
Il n'est pas "possible" de faire ce qui est demandé parce qu'un fichier dll ne permet tout simplement pas de retourner plusieurs valeurs dans une fonction. Dans la mesure où ces fichiers répondent à une "convention d'appel des procédures" (stdcall ou CDecl) et commes ces bibliothèques sont prévues pour être partagées on doit s'aligner sur la norme.
Maintenant il n'est pas impossible de retourner plusieurs valeurs. Il suffirait de pouvoir affecter des structures.
Code : Tout sélectionner
;par exemple
a.point = b.point
Code : Tout sélectionner
;par exemple
Procedure.point test()
ProcedureReturn a.point
EndProcedure
Code : Tout sélectionner
//par exemple
<int, float> ma_fonction() {
return <5, 12.5f>;
}
Je pense qu'à partir de là on pourrait avoir ce genre de méchanisme ^_^
Dri
Ouais, ou le truc tout bête finalement.
Code : Tout sélectionner
Structure PAF
Papa.L
Maman.L
LaBonne.S
EtMoi.F
EndStructure
Declare Poum(*Pif.PAF)
Pif.PAF
Poum(Pif)
Procedure Poum(*Pif.PAF)
With *Pif
\Papa + \LaBonne
\EtMoi * #Pi
Debug \Maman
EndWith
EndProcedure
- Kwai chang caine
- Messages : 6962
- Inscription : sam. 23/sept./2006 18:32
- Localisation : Isere