2010-01-28 21 views
6

Il vantaggio principale che vedo per l'utilizzo di C++ anziché C# è la compilazione in codice nativo, quindi otteniamo prestazioni migliori. C# è più facile, ma compila il codice gestito.Qual è la differenza tra C++ gestito e C#?

Perché qualcuno dovrebbe utilizzare il C++ gestito? Quali vantaggi ci offre?

+1

Anche il C++ gestito è deprecato: è preferibile concentrarsi su C++/CLI. È molto, molto più bello da usare e affronta lo stesso spazio dei problemi. –

risposta

7

Managed C++ e C++/CLI permettono di scrivere facilmente codice gestito che interagisce con C++ nativo.

Ciò è particolarmente utile durante la migrazione di un sistema esistente per .Net e quando si lavora in contesti scientifici con i calcoli che devono essere eseguiti in C++.

+6

.. e C# consente di scrivere facilmente il _rest_ del codice. –

2

Il C++ gestito consente di interop più facilmente tra codice nativo e codice gestito. Per esempio, se si dispone di una libreria in C++ (file cpp e file .h), è possibile collegarli nel progetto, e creare gli oggetti CLR appropriate, e semplicemente chiamare il codice nativo da parte delle vostre oggetti CLR:

#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 è il nuovo nome) è possibile avvolgere codice nativo per funzionare perfettamente con i rifiuti controllato C# e persino processo callback troppo. Inversamente puoi creare tipi gestiti e interagire con loro da C++.

Permette agli sviluppatori di migrare in C# facilmente per pilotare tempi di compilazione veloci e così via, ad es. xna, collegamento alle librerie native, come menzionato!

Problemi correlati