¿Cuál es exactamente la diferencia entre el "viejo" Managed C++ y el "nuevo" C++/CLI?¿Cuál es la diferencia entre Managed C++ y C++/CLI?
Respuesta
Managed C++ es la versión en VS2002 y VS2003. Tenía condiciones de carrera y otros errores graves, además de ser confuso. Ya no es compatible.
En VS2005, Microsoft presentó C++/CLI, que también ha sido aceptado como un estándar ISO. También es compatible con VS2008 y el próximo VS2010.
Ambos tenían el mismo objetivo, que es crear ensamblajes .NET utilizando el lenguaje C++. La sintaxis es diferente (el código administrado de C++/CLI es mucho más fácil de diferenciar del C++ estándar de un vistazo) y C++/CLI también tiene sintaxis para las características de .NET 2.0, como los genéricos.
http://msdn.microsoft.com/en-us/library/ms235298.aspx ofrece una descripción general de los cambios de sintaxis.
Managed C++ (Extensiones administradas para C++) es un conjunto de palabras clave específicas de microsoft utilizadas con la sintaxis estándar de C++ para permitir la compilación del código administrado. El diseño de TI fue tal que los programadores podían comenzar a usar .NET lo más rápido posible y hacer que la migración del código nativo a la plataforma .NET fuera muy sencilla. Usó el principio de IJW (simplemente funciona), lo que hizo que programar la migración a .NET sea más fácil, pero también tenía muchos defectos.
C++/CLI es un nuevo idioma. Resolvió muchos problemas de Managed C++, hizo que la programación de .NET fuera más poderosa y se acepta como estándar, pero también introduce una nueva sintaxis, nuevas palabras clave y es mucho más diferente de C++ no administrado que el anterior C++ administrado.
- 1. ¿Cuál es la diferencia entre C y C incrustado?
- 2. ¿Cuál es la diferencia entre Visual C++ y C++?
- 3. ¿Cuál es la diferencia entre C++ administrado y C#?
- 4. ¿Cuál es la diferencia entre {0} y ""?
- 5. Cuál es la diferencia entre = y: =
- 6. ¿Cuál es la diferencia entre .ToString (+) y ""
- 7. Cuál es la diferencia entre $ (...) y `...`
- 8. ¿cuál es la diferencia entre:.! y: r !?
- 9. ¿Cuál es la diferencia entre ".equals" y "=="?
- 10. ¿Cuál es la diferencia entre dict() y {}?
- 11. ¿Cuál es la diferencia entre `##` y `hashCode`?
- 12. ¿Cuál es la diferencia entre "$^N" y "$ +"?
- 13. ¿Cuál es la diferencia entre [indefinido] y [,]?
- 14. ¿Cuál es la diferencia entre + = y = +?
- 15. ¿Cuál es la diferencia entre " " y ""?
- 16. Cuál es la diferencia entre $ y jQuery
- 17. ¿Cuál es la diferencia entre Xcode, Objective-C y Cocoa?
- 18. C#: ¿Cuál es la diferencia entre TypeDescriptor.GetAttributes() y GetType() .GetCustomAttributes?
- 19. C++ STL :: ¿cuál es la diferencia entre inplace_merge y sort
- 20. Objective-C: ¿Cuál es la diferencia entre NULL, nil y @ ""?
- 21. ¿Cuál es la diferencia entre Ctrl-C y SIGINT?
- 22. ¿Cuál es la diferencia entre 'int'? y 'int' en C#?
- 23. ¿Cuál es la diferencia entre dynamic (C# 4) y var?
- 24. ¿Cuál es la diferencia entre Ctrl + C y Ctrl + [?
- 25. En C# ¿cuál es la diferencia entre ToUpper() y ToUpperInvariant()?
- 26. ¿Cuál es la diferencia entre C# y .NET?
- 27. ¿Cuál es la diferencia entre File y FileInfo en C#?
- 28. ¿Cuál es la diferencia entre C#, .NET y CLI?
- 29. ¿Cuál es la diferencia entre Process y ProcessStartInfo en C#?
- 30. ¿Cuál es la diferencia entre printf() y puts() en C?
Para completar, deberíamos decir que el lenguaje antiguo se llamaba correctamente "Extensiones administradas para C++". –