Je suppose que vous ne pouvez pas simplement compiler une application C++ avec un compilateur C++/CLI. Je me demande si ce serait difficile. Est-ce que quelqu'un a essayé cela, et si oui: y avait-il beaucoup de modifications nécessaires?Est-il difficile de porter C++ en C++/CLI?
Répondre
La situation est un peu comme la compilation de C en C++. La plus grande partie de C sera compilée en C++, mais elle est loin de ce que l'on pourrait considérer comme un exemple de C++. Il est donc probable que vous voudriez le modifier (souvent un peu) avant de l'utiliser.
De même, la plupart des C++ seront compilés en C++/CLI, mais il est probable que vous préférez ne pas l'utiliser de cette façon.
Cela fonctionnera bien pour presque n'importe quel code C++ natif. Il sera traduit en IL, tout comme le code managé, et compilera JIT à l'exécution. Vous pouvez appeler librement du code managé, grâce à C++ interop. La seule construction de code non managée que je sais qui ne peut pas être compilée est le mot clé __fastcall. Il y a un problème avec le mot-clé const, il est imparfaitement simulé avec des attributs, mais c'est seulement un problème lorsque vous importez des métadonnées. Continuez à utiliser des fichiers d'en-tête comme vous le faites maintenant. Un ensemble .NET est capable de stocker le code machine ainsi que l'IL. Vous pouvez en profiter en désactivant sélectivement la génération IL pour les cas où le compilateur a des problèmes ou lorsque vous pensez que le code généré n'est pas optimal. Enveloppez votre code avec un #pragma:
#pragma managed(push,off)
void CompiledToMachineCode() {
// etc..
}
#pragma managed(pop)
Vous devrez également utiliser ce #pragma lorsque vous #include les en-têtes pour .libs qui ont été compilés séparément sans l'option/compiler clr.
- 1. Comment puis-je porter openssl_sign de php en C#?
- 2. Meilleure façon de porter Java en Python?
- 3. Comment porter un projet?
- 4. Besoin d'aide pour porter ce code C à C#
- 5. Essayer de porter la fonction C# à PHP5
- 6. Comment faire pour porter BrowseForFolder de VBScript à C#/WPF?
- 7. Porter Stemmer et Weka
- 8. Une question difficile?
- 9. Comment utiliser Alpha Compositing (Porter et Duff) avec C#?
- 10. Comment puis-je porter une extension dans VB.NET vers C#?
- 11. Est-il possible de porter un téléphone Symbian Android
- 12. Quel est un bon émulateur à porter sur Silverlight 3?
- 13. un code de requête difficile
- 14. tableau Difficile ordre de tri
- 15. requête SQL difficile
- 16. TSQL difficile jointure problème
- 17. Pourquoi M # serait-il plus difficile pour Google que C#?
- 18. algorithme crc difficile
- 19. problème difficile avec .htaccess
- 20. requête difficile (DB2)
- 21. Programmation de capteurs 3D optiques après une mesure difficile en Visual C++
- 22. Pourquoi est-il si «difficile» d'écrire une boucle forcée en C++ avec 2 variables de boucle?
- 23. Xerces C++ XML: échapper est vraiment difficile à faire?
- 24. Code d'assemblage mélangé avec mon code C++. Comment porter en 64 bits
- 25. Résolution d'une erreur de type incomplète difficile
- 26. problème de synchronisation difficile avec les commandes FLEX (en cairngorm)
- 27. est-il difficile de mettre en œuvre dans App Purchase?
- 28. API J2ME difficile à trouver
- 29. Validation conditionnelle avec Paperclip difficile
- 30. Pourtant, je trouve difficile à comprendre JSON
Copie possible: http://stackoverflow.com/questions/704388/please-description-vous-expertise-de-l'utilisation-microsoft-c-cli –
@Kirill - Err ... no. Pas même proche. –