none
Que lenguaje se utiliza mas: C++ o C#? RRS feed

  • Pregunta

  • Hola a todos. Tengo unas dudas entre estos 2 lenguajes y es que estoy aprendiendo sobre c#. Tengo un proyecto en el que tengo por un lado firmware para microcontrolador y por otro el software de pc para la comunicacion y modificacion de parametros. Entre los programas tengo compartido definiciones a traves de archivos .h. Sin embargo C# no contiene esta caracteristica por lo que no podre compartir entre ellos.

    -Mi primera duda es si conviene utilizar c# para este tipo de proyecto.

    -Mi segunda duda es que suelo ver en muchas paginas que uno de los lenguajes mas utilizados es el C++ seguido por C# unos puestos mas atras, pero cada vez que busco informacion sobre mi codigo, casi siempre esta en C# y tengo que traducirlo a mi lenguaje C++ que es con el que actualmente esta hecho mi proyecto. Como es eso? Esta cada vez mas en desuso el C++?

    lunes, 8 de junio de 2020 16:27

Respuestas

  • Entre los programas tengo compartido definiciones a traves de archivos .h. Sin embargo C# no contiene esta caracteristica por lo que no podre compartir entre ellos.

    Sí, si que puedes. En C# no se usan archivos .h, pero eso no quiere decir que no pueda llamar a código escrito en C++. Se usa una característica de C# llamada Platform Invoke (usualmente abreviado como P/Invoke), que usa una sintaxis específica para declarar los puntos de entrada de la librería a la que vas a llamar, que puede estar escrita en cualquier lenguaje incluyendo C++.

    https://docs.microsoft.com/en-us/dotnet/standard/native-interop/pinvoke

    Mi primera duda es si conviene utilizar c# para este tipo de proyecto.

    Lo más típico sería programar el microcontrolador en C++, y si en un PC tienes una aplicación para configurarlo y mandarle datos, esa aplicación se hace en C#.

    En cuanto a cómo de usado es cada lenguaje, depende del tipo de aplicación. Para aplicaciones de "bajo nivel" tales como código en un microcontrolador que accede directamente al hardware, es mucho más frecuente usar C++, mientras que para aplicaciones "de negocio" (p.ej. una herramienta administrativa en un PC) suele ser mucho más productivo usar C#. Por eso variará el número de ejemplos que encuentras dependiendo de qué tipo de código estés buscando.

    lunes, 8 de junio de 2020 18:47

Todas las respuestas

  • Entre los programas tengo compartido definiciones a traves de archivos .h. Sin embargo C# no contiene esta caracteristica por lo que no podre compartir entre ellos.

    Sí, si que puedes. En C# no se usan archivos .h, pero eso no quiere decir que no pueda llamar a código escrito en C++. Se usa una característica de C# llamada Platform Invoke (usualmente abreviado como P/Invoke), que usa una sintaxis específica para declarar los puntos de entrada de la librería a la que vas a llamar, que puede estar escrita en cualquier lenguaje incluyendo C++.

    https://docs.microsoft.com/en-us/dotnet/standard/native-interop/pinvoke

    Mi primera duda es si conviene utilizar c# para este tipo de proyecto.

    Lo más típico sería programar el microcontrolador en C++, y si en un PC tienes una aplicación para configurarlo y mandarle datos, esa aplicación se hace en C#.

    En cuanto a cómo de usado es cada lenguaje, depende del tipo de aplicación. Para aplicaciones de "bajo nivel" tales como código en un microcontrolador que accede directamente al hardware, es mucho más frecuente usar C++, mientras que para aplicaciones "de negocio" (p.ej. una herramienta administrativa en un PC) suele ser mucho más productivo usar C#. Por eso variará el número de ejemplos que encuentras dependiendo de qué tipo de código estés buscando.

    lunes, 8 de junio de 2020 18:47
  • Hola Axel Hyx, 

      

    ¿Alguna novedad sobre la consulta realizada? ¿Han sido útiles las  respuestas proporcionadas?  

    Espero su respuesta.  

    Cualquier duda referente a productos Microsoft, puedes consultarnos. Es un gusto informarte. 

    Gracias por usar los foros de MSDN.  

    Andres Aguilar 

    ____________________________  

     

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde.  

    Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft.   

    Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft. 


    martes, 9 de junio de 2020 16:15
    Moderador