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.