2010-10-13 37 views
5

¡Esto NO es una duda de Programación!Lenguaje de programación para crear DLL: C++ o C#

Voy a escribir una DLL para alguna aplicación. Tengo dos opciones para elegir: C++ o C# ¿En qué idioma debo escribir la DLL?

¿Eso afecta la funcionalidad?

Soy completamente novato y no soy consciente de C++ y C# (pero algunos programas pequeños en C#).

¿Qué son los pros y los contras de escribir DLL en C++ o C#?

¡Muchas gracias por su tiempo!

Saludos, Swanand!

+1

votación para cerrar tan subjetivo y argumentativa. –

+0

Gracias a todos .... Por lo tanto, me estoy dirigiendo por C# forma .... – Swanand

+0

Cuéntenos sobre el propósito de su DLL ... – Shog9

Respuesta

18

Una DLL es mejor escrito en C :)

Me explico:

El concepto de DLL se creó cuando allí era ninguna de hoy C++. Fue creado para C. Puedes escribir archivos DLL con C++, pero podrás usarlos fácilmente solo desde aplicaciones que fueron escritas con la misma versión del mismo compilador que el archivo DLL. Un DLL de C se puede usar desde .NET, a diferencia de C++ (sí, lo sé, técnicamente puede, pero es un dolor en las nalgas).

Si crea una DLL con C# (o cualquier otro lenguaje .NET), es una cosa completamente distinta: no es una DLL de Windows, es simplemente un ensamblado .NET sin un punto de entrada (Principal), por lo que puede usarse desde otros ensamblados .NET al hacer referencia a la DLL.

En resumen:

  1. Si es necesario utilizar el archivo DLL de lenguajes .NET - escribirlo en C#, no habrá un archivo DLL de Windows, solo un montaje. Muy fácil de usar

  2. Si necesita usar su DLL SOLAMENTE en C++ y SOLO desde aplicaciones escritas por el mismo compilador, escriba en C++. No es portátil, fácil de usar.

  3. Si desea crear una biblioteca de propósito general que se pueda utilizar desde.NET, C, C++ e independientemente del compilador, use C, o C++ funciones independientes marcadas como extern "C" y que tengan parámetros tipo C, como punteros y POD.

HTH

+0

@Alexandre: Buen punto, solo adiviné que dado que OP es nuevo en Dll'l es posible que no tenga idea de qué es COM :) –

+0

Una DLL a menudo se escribe mejor con una interfaz C, pero a menudo es más fácil escribirla con estándar C++ debajo. – CashCow

6

Depende de su aplicación de destino. Si está escribiendo la aplicación Win32, entonces C++ puede ser una buena elección. Si está desarrollando una biblioteca reutilizable en .NET, elija C#.

2

Cuando dices C++, ¿te refieres al estándar C++ o la versión "administrada"?

Si te refieres a esto último, no estás peor que escribir en C#, ya que Managed C++ es un lenguaje .NET alternativo, y de hecho creo que tienes más funcionalidades disponibles, aunque no es un lenguaje tan simple como escriba como C#.

1

Pros y contras no cambiar para una biblioteca si se refiere a C++ administrado. Pero para la codificación, la facilidad de uso y las bibliotecas disponibles es importante. Sugeriría C# ya que dices que eres novato. Es mucho más fácil y tienes MUCHAS fuentes en línea. Pero si planea usar algún código nativo y necesita soporte CLR, entonces C++ es la única opción.

Buena suerte

+0

Muchas gracias por Sugerencias Ali! – Swanand

Cuestiones relacionadas