Comment puis-je traduire petit projet C++/CLI à C#traduire C++/CLI en C#
Répondre
Un rond-point, de façon manuelle serait de compiler votre projet C++/CLI et ouvrir l'ensemble de sortie Reflector. Désassemblez chaque classe, faites-la convertir l'IL désassemblé en C# et enregistrez ce code. Comme pour une façon automatique de le faire, je ne peux pas penser à tout de haut en bas de ma tête.
Ces choses étant dit, êtes-vous sûr que vous vraiment voulez pour convertir votre projet en C#? Si votre projet C++/CLI utilise un code non géré, vous aurez du mal à trouver un équivalent purement géré. Si le projet est plus ou moins composé de code CLR pur, et qu'il a été écrit en C++/CLI pour être écrit en C++/CLI, je peux comprendre vouloir le convertir en C#. Mais s'il y avait une raison pour l'écrire en C++/CLI, vous voudrez peut-être le garder ainsi.
Je n'ai pas essayé, mais je googlé et trouvé ceci: http://code2code.net/ Selon t il, vous ne devriez pas compter entièrement sur le code qu'il produit:
Vous acceptez que cette page ne fasse que la moitié du travail. Un travail supplémentaire de votre part est requis. Dans la plupart des cas, le code traduit ne sera même pas compilé.
De plus, lisez ceci: Translate C++/CLI to C#
À mon humble avis, ligne par ligne est le meilleur moyen. J'ai porté plusieurs projets de style C++ dans un langage géré et j'ai essayé différentes approches; traducteurs, ligne par ligne, script, etc ... Au fil du temps, j'ai trouvé le moyen le plus efficace de le faire ligne par ligne, même si cela semble être le moyen le plus lent au début.
Trop de données sont perdues dans un traducteur. Aucun traducteur n'est parfait et vous finissez par passer beaucoup de temps à corriger le code traduit. En outre, le code traduit en règle est laid et tend à être moins lisible que le code fabriqué à la main. Le résultat est donc une base de code fixe, pas très jolie.
Quelques conseils que j'ai en ligne par ligne
- Commencez par définir tous les types de feuilles
- Pour chaque type qui a un non-trivial (mémoire libérant) destructor, mettre en œuvre IDisposable
- Activez la règle FxCop qui vérifie l'absence d'appels Dispose pour capturer tous les endroits utilisés RAII basé sur la pile et l'a manqué
- Portez une attention particulière aux utilisations de byref en C++.
- 1. Traduire C++/CLI en C#
- 2. Traduire le code C# en AST?
- 3. Programatically traduire C# à IL
- 4. Traduire l'instruction LINQ en SQL
- 5. traduire C++/code CLI à C#
- 6. Initialiser l'objet COM/Traduire le code VB en C++
- 7. Traduire une URL en route
- 8. C# equivalence de python maketrans et traduire
- 9. Comment traduire ce paradigme webforms en mvc?
- 10. Comment traduire ce pur javascript en jQuery?
- 11. Traduire le code du prototype en JQuery
- 12. tag JSTL pas traduire en HTML
- 13. Traduire l'assemblage en ligne pour prendre en charge x64
- 14. VB to C# Traduire gestionnaire d'événements qui implémente l'événement d'interface
- 15. Pouvez-vous traduire la fonction PHP quoted_printable_decode() en méthode/catégorie C/objectif basée sur NSString?
- 16. comment traduire la valeur de getTime() de javascript en C# DateTime
- 17. ASP.Net/MySQL: Traduire le contenu en plusieurs langues
- 18. comment puis-je traduire ceci en ruby nokogiri?
- 19. Quelqu'un peut-il traduire cela en anglais? Traduction PHP?
- 20. Traduire le code Java en code PHP (13 lignes)
- 21. Comment traduire NASM "push byte" en syntaxe GAS?
- 22. Traduire le vecteur par matrice
- 23. Impossible de traduire le caractère Unicode
- 24. Traduire ce fichier app.config au code? (WCF)
- 25. Comment traduire et modifier map.resources: document
- 26. Comment traduire et migrer des données
- 27. Traduire une requête à utiliser Zend_Db_Select
- 28. JQuery datepicker: comment traduire? (n'accepte pas dayNamesShort)
- 29. Temps C# en microsecondes
- 30. Pourquoi Linq ne peut pas traduire expression/traiter en tant qu'expression locale et déclenche une exception?