L'avantage majeur que je vois pour utiliser C ++ au lieu de C # compose du code natif, nous obtenons donc une meilleure performance. C # est plus facile, mais compile le code géré. P>
Pourquoi quelqu'un utiliserait-il géré C ++? Quels avantages cela nous donne? P>
3 Réponses :
Géré C ++ et C ++ / CLI vous permettent d'écrire facilement un code géré qui interagit avec Native C ++. p>
Ceci est particulièrement utile lors de la migration d'un système existant vers .NET et lorsque vous travaillez dans des contextes scientifiques avec des calculs qui doivent être exécutés en C ++. P>
géré C ++ permet d'intervenir plus facilement entre le code natif et le code géré. Par exemple, si vous avez une bibliothèque en C ++ (fichiers .cpp et fichiers .h), vous pouvez les relier dans votre projet et créer les objets CLR appropriés et simplement appeler le code natif de vos objets CLRC:
#include "yourcoollibrary.h" namespace DotNetLibraryNamespace { public ref class DotNetClass { public: DotNetClass() { } property System::String ^Foo { System::String ^get() { return gcnew System::String(c.data.c_str()); } void set(System::String ^str) { marshal_context ctx; c.data = ctx.marshal_as<const char *>(str); } } private: NativeClassInMyCoolLibrary c; }; }
(C ++ / CLI est le nouveau nom) Vous pouvez envelopper le code natif pour fonctionner parfaitement avec les déchets contrôlés C # et même les rappels de processus. Inversement, vous pouvez créer des types gérés et interagir avec eux de C ++. P>
permet aux développeurs de migrer facilement sur C # pour piloter des heures de construction rapides et ainsi de suite, par ex. XNA, liaison aux bibliothèques autochtones, comme mentionné! P>
Géré C ++ est également obsolète - vous devriez vous concentrer sur C ++ / CLI, à la place. C'est beaucoup plus agréable à utiliser et aborde le même espace problématique.