2010-10-13 67 views
5

Đây KHÔNG phải là một nghi ngờ lập trình!Ngôn ngữ lập trình để tạo DLL: C++ hoặc C#

Tôi sẽ viết một DLL cho một số ứng dụng. Tôi có hai tùy chọn để lựa chọn: C++ hoặc C# Trong ngôn ngữ nào tôi nên viết DLL?

Điều đó có ảnh hưởng đến chức năng không?

Tôi là một người mới hoàn toàn và không biết về cả C++ và C# (nhưng một số chương trình nhỏ trong C#).

Ưu và khuyết điểm về việc ghi DLL trong C++ hoặc C# là gì?

Cảm ơn bạn rất nhiều vì đã dành thời gian!

Trân trọng, Swanand!

+1

Bỏ phiếu để đóng như chủ quan và lý này lý. –

+0

Cảm ơn tất cả .... Vì vậy, tôi đang đi theo hướng C# .... – Swanand

+0

Hãy cho chúng tôi biết về mục đích của DLL của bạn ... – Shog9

Trả lời

18

Một DLL được viết tốt nhất trong C :)

Hãy để tôi giải thích:

Khái niệm về DLL đã được tạo ra khi ther không ngày nay C++. Nó được tạo ra cho C. Bạn có thể viết DLL với C++ nhưng bạn sẽ có thể dễ dàng sử dụng chúng chỉ từ các ứng dụng được viết với cùng một phiên bản của trình biên dịch tương tự như DLL. Một DLL C có thể được sử dụng từ .NET, không giống như C++ (vâng, tôi biết, về mặt kỹ thuật nó có thể, nhưng nó là một cơn đau ở mông).

Nếu bạn tạo DLL với C# (hoặc bất kỳ ngôn ngữ .NET nào khác), đó là một thứ hoàn toàn khác - nó không phải là một cửa sổ DLL, nó chỉ là một hội đồng .Net không có điểm vào (chính), vì vậy nó có thể được sử dụng từ các hội đồng .NET khác bằng cách tham khảo DLL.

Để tóm tắt:

  1. Nếu bạn cần phải sử dụng DLL của bạn từ các ngôn ngữ .NET - viết nó trong C#, nó sẽ không thể là một cửa sổ dll, chỉ cần một lắp ráp. Rất dễ sử dụng.

  2. Nếu bạn cần sử dụng DLL của mình từ CHỈ C++ và CHỈ từ các ứng dụng được viết bởi cùng một trình biên dịch, hãy viết bằng C++. Không di động, dễ sử dụng.

  3. Nếu bạn muốn tạo thư viện đa năng có thể được sử dụng.NET, C, C++ và bất kể trình biên dịch, sử dụng các hàm freestanding C hoặc C++ được đánh dấu là extern "C" và có các tham số giống như C, như con trỏ và POD.

HTH

+0

@ Alexandre: Điểm tốt, chỉ có tôi đoán rằng kể từ khi OP là mới để Dll'l nó có thể anh ta không có ý tưởng COM là gì :) –

+0

Một DLL thường được viết tốt nhất với một giao diện C nhưng thường dễ dàng hơn để viết với tiêu chuẩn C++ bên dưới. – CashCow

6

Nó sẽ phụ thuộc vào ứng dụng đích của bạn. Nếu bạn đang viết ứng dụng Win32, thì C++ có thể là lựa chọn khôn ngoan. Nếu bạn đang phát triển một thư viện tái sử dụng trong .NET chọn C#.

2

Khi bạn nói C++ bạn đang đề cập đến chuẩn C++ hay phiên bản "Được quản lý"?

Nếu bạn đề cập đến thứ hai thì bạn không còn tệ hơn viết bằng C# vì Managed C++ là ngôn ngữ .NET thay thế, và thực sự tôi nghĩ bạn có nhiều chức năng hơn, mặc dù ngôn ngữ không đơn giản viết bằng C#.

1

Ưu điểm và nhược điểm không thay đổi đối với thư viện nếu bạn muốn quản lý C++. Nhưng đối với việc viết mã, dễ sử dụng và các thư viện có sẵn thì quan trọng. Tôi sẽ đề nghị C# kể từ khi bạn nói bạn là newbie. Dễ dàng hơn nhiều và bạn có rất nhiều nguồn trực tuyến. Nhưng nếu bạn dự định sử dụng một số mã gốc và cần hỗ trợ CLR thì C++ là lựa chọn duy nhất.

Chúc may mắn

+0

Cảm ơn bạn rất nhiều vì đã đề xuất Ali! – Swanand

Các vấn đề liên quan