2008-09-22 14 views
40

El título de los temas es en realidad mi pregunta. Y la segunda pregunta es: ¿Cuándo uso qué de estos dos?Diferencia entre C++ administrado y C++

+0

Extensiones administradas para C++ o simplemente administradas C++ es un conjunto de desviaciones de Microsoft ahora en desuso de C++, incluidas extensiones gramaticales y sintácticas, palabras clave y atributos, para llevar la sintaxis y el lenguaje C++ al .NET Framework. Estas extensiones permitieron que el código C++ se direccionara al Common Language Runtime (CLR) en forma de código administrado, así como a que continuara interoperando con el código nativo. Managed C++ no era un lenguaje de programación independiente completo o completo. https://en.wikipedia.org/wiki/Managed_Extensions_for_C%2B%2B#.E2.80.A6to_C.23 –

Respuesta

43

Cuando no se especifica, C++ no es administrado C++, compilado a código máquina. En C++ no administrado, debe administrar la asignación de memoria manualmente.

Managed C++ es un lenguaje inventado por Microsoft que se compila en bytecode ejecutado por .NET Framework. Utiliza principalmente la misma sintaxis que C++ (de ahí el nombre), pero se compila de la misma manera que C# o VB.NET; básicamente solo cambia la sintaxis, p. usando '->' para apuntar a un miembro de un objeto (en lugar de '.' en C#), usando '::' para espacios de nombres, etc.

Managed C++ se hizo para facilitar la transición del clásico C++ al. NET Framework. No está destinado a ser utilizado para comenzar nuevos proyectos (se prefiere C#).

+1

Una advertencia sobre el consejo de no utilizar C++ administrado para nuevos proyectos. Desde Visual Studio 2008 en adelante Managed C++ tiene algunas características que son superiores a C#. Estos se relacionan con el manejo de objetos ID identificables. Consulte http://msdn.microsoft.com/en-us/library/ms235315.aspx – morechilli

+15

Managed C++ y C++/CLI son dos bestias diferentes. Managed C++ es una horrible extensión a C++ que nunca debería haber visto la luz del día. C++/CLI es oficialmente un idioma separado, por lo que se pueden agregar palabras clave nuevas y es mucho más agradable trabajar con ellas. – Eclipse

0

Managed C++ significa que la asignación de memoria, administración, recolección de basura es manejada por la máquina virtual. Mientras que en C++ "regular" tendrías que asignar y desasignar la memoria.

9

"C++ administrado" hace referencia a un lenguaje que se incluyó en Visual Studio.NET/VisualStudio.NET 2003. Desde entonces ha sido deprecated, siendo el último .NET C++ C++/CLI.

0

Utilizará C++ administrado cuando desee utilizar una biblioteca de clase C++ nativa desde el código administrado. En este caso, ajusta las clases no administradas en las administradas de C++, y luego las usa en cualquier lenguaje CLR.

3

Puede codificar C++ nativo de dos maneras diferentes. El primero es compilar directamente código máquina con solo el sistema operativo entre usted y la Plataforma (Hardware). La segunda codificación nativa se realiza con MFC (Microsoft Foundation Classes). Este es el mismo que el primer ejemplo, excepto el uso de MFC.

Managed C++ utiliza el CLR (Common Language Runtime) El CLR junto con las bibliotecas de clase de .NET Framework conforman .NET Framework. Este estándar administrado de C++/CLI utiliza .Net Framework junto con MSIL (Microsoft Intermediate Language). Este estándar funciona mapeando código máquina solo cuando el programa se está ejecutando mediante el uso de un compilador just-time. Si su código se ejecutará en diferentes plataformas de hardware, el uso del código administrado será mucho más fácil. Al igual que con todo, hay un pequeño precio a pagar por comodidad, ya que el código nativo se ejecutará más rápido.

Cuestiones relacionadas