2010-10-13 8 views
5

Dies ist kein Programmier Zweifel!Programmiersprache für das Erstellen von DLL: C++ oder C#

Ich werde eine DLL für eine Anwendung schreiben. Ich habe zwei Optionen zur Auswahl: C++ oder C# In welcher Sprache sollte ich DLL schreiben?

Beeinflusst das die Funktionalität?

Ich bin ein völlig Neuling und Unaware von C++ und C# (aber einige kleine Programme in C#).

Was sind Vor- und Nachteile beim Schreiben von DLL in C++ oder C#?

Vielen Dank für Ihre Zeit!

Grüße, Swanand!

+1

Voting als subjektive und argumentative zu schließen. –

+0

Vielen Dank all .... Also, ich bin auf dem Weg nach C# Weg .... – Swanand

+0

Erzählen Sie uns über den Zweck Ihrer DLL ... – Shog9

Antwort

18

Eine DLL wird am besten in C geschrieben :)

Lassen Sie mich erklären:

Das Konzept der DLL erstellt wurde, wenn ther keine C war die heutige ++. Es wurde für C erstellt. Sie können DLLs mit C++ schreiben, aber Sie können sie einfach nur von Anwendungen verwenden, die mit derselben Version des gleichen Compilers wie die DLL geschrieben wurden. Eine C-DLL kann von .NET verwendet werden, im Gegensatz zu C++ (ja, ich weiß, technisch kann es, aber es ist ein Schmerz im Gesäß).

Wenn Sie DLL mit C# (oder jeder anderen .NET-Sprache) erstellen, ist es eine ganz andere Sache - es ist keine Windows-DLL, es ist nur eine .Net-Assembly ohne einen Einstiegspunkt (Main), so dass es verwendet werden kann von anderen .NET-Assemblies, indem auf die DLL verwiesen wird.

Fassen wir zusammen:

  1. Wenn Sie Ihre DLL von .NET-Sprachen verwenden - schreiben Sie es in C#, es wird nicht eine Windows-DLL sein, nur eine Versammlung. Sehr einfach zu bedienen.

  2. Wenn Sie Ihre DLL von NUR C++ und NUR von Anwendungen, die von demselben Compiler geschrieben wurden, verwenden müssen, schreiben Sie in C++. Nicht tragbar, einfach zu bedienen.

  3. Wenn Sie eine universelle Bibliothek erstellen möchten, die verwendet werden kann.NET, C, C++ und unabhängig vom Compiler verwenden C oder C++ freistehende Funktionen, die als extern "C" markiert sind und C-ähnliche Parameter haben, wie Zeiger und PODs.

HTH

+0

@Alexandre: Guter Punkt, nur ich vermutete, dass, da das OP für Dll'l neu ist, er keine Ahnung hat, was COM ist :) –

+0

Eine DLL ist oft am besten mit einer C-Schnittstelle geschrieben, aber ist oft einfacher mit Standard zu schreiben C++ darunter. – CashCow

6

Es hängt von Ihrer Zielanwendung ab. Wenn Sie die Win32-App schreiben, ist C++ eine gute Wahl. Wenn Sie eine wiederverwendbare Bibliothek in .NET entwickeln, wählen Sie C#.

2

Wenn Sie C++ sagen, beziehen Sie sich auf die Standard-C++ - oder die "Managed" -Version?

Wenn Sie sich auf die letzteren beziehen, dann sind Sie nicht schlechter dran als in C# zu schreiben, da Managed C++ eine alternative .NET-Sprache ist und ich glaube, Sie haben mehr Funktionalität zur Verfügung, obwohl es nicht so einfach ist schreibe als C# auf.

1

Pro und Contra nicht für eine Bibliothek ändern, wenn Sie verwaltete C++ gemeint sind. Aber für die Codierung sind Benutzerfreundlichkeit und verfügbare Bibliotheken von Bedeutung. Ich würde C# vorschlagen, da Sie sagen, Sie sind Neuling. Es ist viel einfacher und Sie haben viele Quellen online. Wenn Sie jedoch systemeigenen Code verwenden und CLR-Unterstützung benötigen, ist C++ die einzige Möglichkeit.

Viel Glück

+0

Vielen Dank für die Vorschläge Ali! – Swanand