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
Code : Tout sélectionner
;par exemple
Procedure.point test()
ProcedureReturn a.point
EndProcedure
Il existe des langages compilés qui proposent de retourner plusieurs variables d'un type différent.
Code : Tout sélectionner
//par exemple
<int, float> ma_fonction() {
return <5, 12.5f>;
}
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