2010-01-28 18 views
6

La principal ventaja que veo al utilizar C++ en lugar de C# es compilar con código nativo, por lo que obtenemos un mejor rendimiento. C# es más fácil, pero se compila para el código administrado.¿Cuál es la diferencia entre C++ administrado y C#?

¿Por qué alguien usaría C++ administrado? ¿Qué ventajas nos da?

+1

Managed C++ también está en desuso: en su lugar, debe centrarse en C++/CLI. Es mucho, mucho mejor de usar, y aborda el mismo espacio problemático. –

Respuesta

7

Administrado C++ y C++/CLI le permiten escribir fácilmente código administrado que interactúa con C++ nativo.

Esto es especialmente útil cuando se migra un sistema existente a .Net y cuando se trabaja en contextos científicos con cálculos que se deben ejecutar en C++.

+6

..y C# le permite escribir fácilmente el _rest_ del código. –

2

Managed C++ permite interoperar más fácilmente entre código nativo y código administrado. Por ejemplo, si tiene una biblioteca en C++ (archivos .cpp y archivos .h), puede vincularlos a su proyecto, crear los objetos CLR apropiados y simplemente llamar al código nativo desde sus objetos 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 es el nuevo nombre) Puede ajustar el código nativo para que funcione sin problemas con C# controlado por basura e incluso procesar devoluciones de llamada también. Inversamente puede crear tipos administrados e interactuar con ellos desde C++.

Permite a los desarrolladores migrar a C# fácilmente para pilotear tiempos de construcción rápidos, y así sucesivamente, p. xna, vinculando a las bibliotecas nativas, como se mencionó!

Cuestiones relacionadas