Bonsoir,
je n'ai pas une très grande expérience de la programmation en C ni en C++ ; je me suis plongé dans le C# directement.
Cependant, j'ai besoin d'utiliser Lex et Yacc ; je connais ces outils pour les avoir utiliser dans leur version OCaml, assez pour savoir que j'aimerais les utiliser dans mes programmes C#.
Problème : s'il y a pas mal de librairies qui permettent de faire du parsing de langage, je ne sais pas ce qu'elles valent, ni comment les utiliser ; par ailleurs, point de C# Lex ou de C# Yacc à l'horizon...
Bref, il faut que j'utilise le mécanisme managed code de C# pour invoquer les fonctions C que vont me créer Lex et Yacc. Mais j'avoue ne pas trop savoir comment faire ; j'ai lu l'article de developpez.com sur les DLL natives en .Net, mais si je compile mes fichiers lex et yacc, j'obtiendrais une dll ou un .exe ? De plus, comment "mélanger" les types complexes (genre enum, constante...) de C et de Csharp ?
Ca m'interesse également d'avoir ces informations, afin de pouvoir éventuellement utiliser des fonctions de "bas-niveaux", ie pouvoir utiliser des périphériques comme on doit théoriquement me l'apprendre l'an prochain, qui sont connectés à l'ordinateur via un port série ; comme je connais bien le C-sharp, j'aimerais savoir comment faire pour pouvoir mélanger le meilleur des deux mondes et encapsuler des fonctions C de pilotage du port série en Csharp.
Je ne sais pas s'il "suffit" d'utiliser ImportDLL, j'avoue ne pas savoir quelles DLL peuvent être importées ou non (j'ai essayé avec VS2008 "add reference", parfois il importe, parfois il importe pas, il semble que certains DLL soient récalcitrantes...). Bref, je fais de la brasse coulée dans la mer des DLL, je ne renierait pas un ou deux liens "débroussaillants" pour ma gouverne.
Merci pour votre aide.
Partager