2010-01-28 13 views
6

Der Hauptvorteil, den ich für die Verwendung von C++ anstelle von C# sehe, ist die Kompilierung mit nativem Code, sodass wir eine bessere Leistung erzielen. C# ist einfacher, kompiliert jedoch zu verwaltetem Code.Was ist der Unterschied zwischen verwaltetem C++ und C#?

Warum sollte jemand verwaltete C++ für verwenden? Welche Vorteile gibt es uns?

+1

Managed C++ ist auch veraltet - Sie sollten stattdessen auf C++/CLI konzentrieren. Es ist viel, viel besser zu benutzen und adressiert den gleichen Problemraum. –

Antwort

7

Managed C++ und C++/CLI ermöglichen Ihnen das einfache Schreiben von verwaltetem Code, der mit nativem C++ interagiert.

Dies ist besonders nützlich bei der Migration eines vorhandenen Systems zu .NET und bei der Arbeit in wissenschaftlichen Kontexten mit Berechnungen, die in C++ ausgeführt werden müssen.

+6

..und C# ermöglicht es Ihnen, das _rest_ des Codes einfach zu schreiben. –

2

Verwaltetes C++ ermöglicht eine einfachere Verbindung zwischen systemeigenem Code und verwaltetem Code. Wenn Sie beispielsweise eine Bibliothek in C++ (.cpp-Dateien und .h-Dateien) haben, können Sie sie in Ihr Projekt einbinden und die entsprechenden CLR-Objekte erstellen und den systemeigenen Code innerhalb Ihrer CLR-Objekte aufrufen:

#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

(C++/CLI ist der neue Name) Sie können systemeigenen Code umwickeln, um fehlerfrei mit müllkontrollierten C# zu arbeiten und sogar Rückrufe zu verarbeiten. Umgekehrt können Sie verwaltete Typen erstellen und mit ihnen aus C++ interagieren.

Ermöglicht Entwicklern, nach C# zu migrieren, um schnelle Build-Zeiten und so weiter, z. XNA, Verknüpfung mit nativen Bibliotheken, wie erwähnt!

Verwandte Themen