2010-10-13 15 views
5

To NIE jest wątpliwe programowanie!Język programowania do tworzenia DLL: C++ lub C#

Mam zamiar napisać DLL dla niektórych aplikacji. Mam dwie opcje do wyboru: C++ lub C# W jakim języku powinienem napisać DLL?

Czy ma to wpływ na funkcjonalność?

Jestem całkowicie początkującym i nieświadomym zarówno C++, jak i C# (ale niektóre małe programy w C#).

Co to są plusy i minusy dotyczące pisania DLL w C++ lub C#?

Dziękuję bardzo za poświęcony czas!

Pozdrawiam, Swanand!

+1

Głosowanie zamknąć jako subiektywne i kłótliwy. –

+0

Dziękuję wszystkim .... Więc kieruję się przez C# way .... – Swanand

+0

Powiedz nam o celu swojej biblioteki DLL ... – Shog9

Odpowiedz

18

DLL jest najlepiej napisany w C :)

Pozwól mi wyjaśnić:

Koncepcja DLL został stworzony przy Ther było dzisiejsze C++. Został stworzony dla C. Możesz pisać biblioteki DLL w C++, ale będziesz mógł z łatwością korzystać z nich tylko z aplikacji napisanych z tą samą wersją tego samego kompilatora co biblioteka DLL. C DLL może być używany z .NET, w przeciwieństwie do C++ (tak, wiem, technicznie może, ale to jest ból w pośladkach).

Jeśli utworzysz bibliotekę DLL z C# (lub jakimkolwiek innym językiem .NET), jest to zupełnie inna sprawa - nie jest to biblioteka DLL systemu Windows, to po prostu zestaw .Net bez punktu wejścia (Main), więc można go używać z innych zespołów .NET, odwołując się do biblioteki DLL.

Podsumowując:

  1. Jeśli trzeba użyć DLL z języków .NET - zapisz go w C#, nie będzie dll okien, tylko zespół. Bardzo łatwy w użyciu.

  2. Jeśli potrzebujesz użyć biblioteki DLL z TYLKO C++ i TYLKO z aplikacji napisanych przez ten sam kompilator, napisz w C++. Nie przenośny, łatwy w użyciu.

  3. Jeśli chcesz utworzyć bibliotekę ogólnego zastosowania, z której można korzystać.NET, C, C++ i niezależnie od kompilatora, używają funkcji wolnostojących C lub C++ oznaczonych jako zewnętrzne "C" i mających parametry podobne do C, takie jak wskaźniki i POD.

HTH

+0

@Alexandre: Dobra uwaga, tylko zgadłem, że ponieważ OP jest nowy w Dll'l to możliwe, że nie ma pojęcia, co to jest COM :) –

+0

DLL często jest najlepiej napisany z interfejsem C, ale często łatwiej jest pisać przy pomocy standardowego C++ pod spodem. – CashCow

6

To będzie zależeć od docelowej aplikacji. Jeśli piszesz aplikację Win32, to C++ może być mądrym wyborem. Jeśli tworzysz bibliotekę wielokrotnego użytku w .NET wybierz C#.

2

Kiedy mówisz C++, masz na myśli wersję Standard C++ lub "Managed"?

Jeśli mówisz o tym drugim, to nie jesteś w gorszej sytuacji niż pisanie w C#, ponieważ Managed C++ jest alternatywnym językiem .NET, a tak naprawdę myślę, że masz więcej dostępnych funkcjonalności, chociaż nie jest to tak prosty język jak wpisz jako C#.

1

Plusy i minusy nie zmieniają się dla biblioteki, jeśli masz na myśli zarządzane C++. Ale kodowanie, łatwość użycia i dostępne biblioteki mają znaczenie. Proponuję C#, ponieważ mówisz, że jesteś początkującym. Jest o wiele łatwiejsze i masz wiele źródeł online. Ale jeśli masz zamiar używać natywnego kodu i potrzebujesz wsparcia CLR, to C++ jest jedynym wyborem.

Powodzenia

+0

Dziękuję bardzo za sugestie Ali! – Swanand

Powiązane problemy