创建 DLL 的编程语言:C++ 或 C#
Posted
技术标签:
【中文标题】创建 DLL 的编程语言:C++ 或 C#【英文标题】:Programming Language for Creating DLL: C++ or C# 【发布时间】:2010-10-13 07:20:50 【问题描述】:这不是编程问题!
我将为某个应用程序编写一个 DLL。 我有两个选项可供选择:C++ 或 C# 我应该用哪种语言编写 DLL?
这会影响功能吗?
我是一个完全新手,不了解 C++ 和 C#(但 C# 中的一些小程序)。
用 C++ 或 C# 编写 DLL 的优缺点是什么?
非常感谢您的宝贵时间!
问候, 斯旺德!
【问题讨论】:
以主观和争论的方式投票结束。 谢谢大家....所以,我以 C# 方式前进.... 告诉我们您的 DLL 的用途... 【参考方案1】:DLL 最好用 C 编写:)
让我解释一下:
DLL 是在 C++ 进入主流之前构思的。它们是为 C 语言创建的。您可以使用 C++ 编写 DLL,但您只能在使用与 DLL 相同版本的编译器编写的应用程序中轻松使用它们。与 C++ 不同,C DLL 可以从 .NET 中使用(是的,我知道,从技术上讲可以,但很麻烦)。
如果您使用 C#(或任何其他 .NET 语言)创建 DLL,则完全是另一回事 - 它不是 Windows DLL,它只是一个没有入口点(Main)的 .Net 程序集,因此可以从其他 .NET 程序集通过引用 DLL。
总结一下:
如果您需要使用 .NET 语言的 DLL - 用 C# 编写,它不会是 windows dll,而只是一个程序集。非常容易使用。
如果您只需要在 C++ 中使用 DLL,并且只能从由同一编译器编写的应用程序中使用 DLL,请使用 C++ 编写。不便携,易于使用。
如果您想创建一个通用库,该库可以从 .NET、C、C++ 中使用,并且与编译器无关,请使用标记为 extern "C" 并具有类似 C 参数的 C 或 C++ 独立函数,比如指针和 POD。
HTH
【讨论】:
@Alexandre:好点子,只是我猜想因为 OP 对 Dll'l 来说是新的,所以他可能不知道 COM 是什么 :) DLL 通常最好使用 C 接口编写,但通常使用底层的标准 C++ 更容易编写。【参考方案2】:这取决于您的目标应用程序。如果您正在编写 Win32 应用程序,那么 C++ 可能是明智的选择。如果您在 .NET 中开发可重用库,请选择 C#。
【讨论】:
【参考方案3】:当您说 C++ 时,您指的是标准 C++ 还是“托管”版本?
如果您指的是后者,那么您不会比用 C# 编写更糟糕,因为托管 C++ 是另一种 .NET 语言,实际上我认为您有更多可用的功能,尽管它不是一种简单的语言编写在 C# 中。
【讨论】:
【参考方案4】:如果您的意思是托管 c++,则库的优缺点不会改变。但是对于编码、易用性和可用的库很重要。 我建议使用 c#,因为你说你是新手。它更容易,你有很多在线资源。 但是,如果您打算使用一些本机代码并需要 CLR 支持,那么 c++ 是唯一的选择。
祝你好运
【讨论】:
以上是关于创建 DLL 的编程语言:C++ 或 C#的主要内容,如果未能解决你的问题,请参考以下文章
通过 C++ dll 或 C++ exe 编写 C# GUI
如何从 c++ 项目中调用用 c# 创建的 dll 文件? [复制]
VS2017下创建C++动态库导出符合并完成调用测试(DLL可供C#调用)
VS2017下创建C++动态库导出符合并完成调用测试(DLL可供C#调用)