se demandait simplement s'il y a des fonctions intégrées en C ++ ou C # qui vous permet d'utiliser le compilateur au moment de l'exécution? Comme par exemple si je veux traduire: dans: p> puis générer un exe qui sera alors capable d'afficher le Message ci-dessus? J'ai vu des exemples de projets autour de la bande il y a quelques années qui l'a fait mais ne le trouva plus. P> P>
6 Réponses :
en C ++ Vous ne pouvez pas utiliser le compilateur au moment de l'exécution, mais vous pouvez intégrer un interprète dans votre projet, comme Cint. p>
hmmm intéressant, je vérifie cela maintenant - merci beaucoup :)
Vous pouvez toujours le faire de manière sale, avec système () et appeler le compilateur "GCC ..." ou votre équivalent p>
Il est possible d'utiliser C #. Regardez ce exemple de projet à partir du codeProject.
Extrait de code b> p>
L'utilisateur doit-il avoir le compilateur C # installé? Ou est-ce que cela vient avec .net? Selon MSDN.microsoft.com/en-us/Library/ ... , cette fonctionnalité est incluse dans system.dll.
La suggestion de Nick est bonne, mais il existe une alternative qui est probablement plus simple à mettre en œuvre (mais pourrait ne pas être appropriée pour tous les projets). Si vous pouvez supposer que votre utilisateur dispose d'un compilateur installé, vous pouvez générer un fichier, puis la compiler à l'aide de leur compilateur. P>
Le .NET-Framework fournit quelques classes qui vous donnent accès aux compilateurs et aux générateurs de code pour C # et VB.NET, ce qui entraîne un assemblage chargé en mémoire ou un simple fichier .exe. Voir CsharpCodeProvider et Cet article . P>
alternativement, vous pouvez simplement créer les fichiers source et les compiler manuellement em> (appels de ligne de commande ( Concernant la traduction de votre source: vous devrez utiliser des mécanismes d'analyse tels que des expressions régulières ici ou utiliser un outil compilateur-compiler comme Coco / R, YACC, etc. (Notez que sous C ++, système code>) sur le compilateur, les fabricants). P>
Boost :: esprit code> peut également être assez utile) P>
in c # Vous pouvez créer un arbre .NET "CODEDOM", puis compiler cette utilisation à l'aide du compilateur .NET. Cela vous donne un accès complet à la plupart des fonctionnalités de .NET. P>
Voir l'espace de noms "System.CodeDom" ou le MSDN Aide pour CodecompileUnit pour plus de détails. P>