6
votes

Quelle est la différence entre géré c ++ et c #?

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é.

Pourquoi quelqu'un utiliserait-il géré C ++? Quels avantages cela nous donne?


1 commentaires

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.


3 Réponses :


7
votes

Géré C ++ et C ++ / CLI vous permettent d'écrire facilement un code géré qui interagit avec Native C ++.

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 ++.


0 commentaires

2
votes

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;
    };
}


0 commentaires

0
votes

(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 ++.

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é!


0 commentaires