Citation:
Envoyé par zais_ethael
Je ne parle absolument pas de recompiler, c'est bien évidemment impossible :)
Ben un peu, si : imposer un framework ou une API que les DLLs doivent respecter, ça implique la recompilation de toutes celles-ci.
Un générateur de wrapper à la SWIG c'est là même chose (mais de l'autre côté).
Citation:
L'interopérabilité avec le C (ou éventuellement C++, mais c'est surtout le C qui est important) est une possibilité dans tous les langages de programmation.
Justement mon pb. est de rendre mon interpréteur interopérable avec du C.
Citation:
Envoyé par zais_ethael
Tous utilisent des wrappers sous une forme ou une autre.
Le problème avec le mot wrapper c'est que ça recouvre trop de concepts différents.
Citation:
Pour appeler une fonction que tu connais, tu crées un wrapper en C qui va récupérer les arguments de type inconnu et en nombre inconnu en provenance du langage de scripting, les décrypter, lancer une erreur si ils ne sont pas bons puis appeler la fonction (que tu connais forcément). Je crois que le python utilise un système à peu près similaire.
Tout le pb. est là : appeller la fonction. On en revient à ma question.
Citation:
Le seul langage à ma connaissance utilisant ce principe est le dotnet. Il permet de définir le prototype d'une fonction en C (nombre d'argument, type, longueur, encodage d'une chaine de caractère,...).
Tu est déjà allé faire un tour ici :
http://docs.python.org/dev/lib/ctype...continued.html
Et ici ?
http://www.digitalmars.com/d/interfaceToC.html
Citation:
Mais rends toi bien compte que ce que tu veux faire est irréalisable tel quel.
Bien sur que vouloir prendre en compte toutes les situations possibles, ça tiend de l'utopie ... :sm: ! Mais rassure toi mon usage est trés ciblé. Dans mon cas les bibliothèques dynamiques à charger ne sont pas si en bazarre que ça (au niveau des technologies mises en oeuvre, mais pas du tout au niveau des prototypes). C'est du C en majorité (un peu de C++ pour certaines), pas de redéfinition de types ou de nouvelles structures, les pointeurs et les références ne servent qu'a passer des arguments par adresse, l'allocation se fait toujours dans la DLL, même chose pour la libération mémoire, leur API est trés bien documentée, ...
Ce que je veux juste c'est pouvoir accéder facilement à mes DLLs sans avoir à recompiler mon interpreteur.
Citation:
J'ai l'impression que tu veux laisser la possibilité à tes utilisateurs...
.
Ne t'inquiètes pas le seul utilisateur ... c'est moi ! J'aurais jamais proposé une solution technique comme ça si c'était professionnel (ça serait aller droit dans le mur :mur:) !