C#基础(⑥动态链接库DLL)
DLL 是封装好的「功能集合」
它不只是单个方法,通常包含多个类、函数、资源(如图标、字符串)等,形成一个完整的功能模块。例如一个处理 Excel 的 DLL,可能包含「读取表格」「写入数据」「设置样式」等一系列相关功能。
是否能看到源码,取决于是否开源
大部分商业 DLL 或系统 DLL:看不到源码(比如 Windows 自带的kernel32.dll、某些付费 SDK 的 DLL),它们以二进制形式发布,只能通过文档知道如何调用。
开源项目的 DLL:如果作者开源了代码(如Newtonsoft.Json.dll的源码在 GitHub 上可查),则能看到实现逻辑,只是使用时依然以编译后的 DLL 形式引用。
就像你用手机 APP 时,不需要知道 APP 的代码怎么写,只要会按按钮用功能就行 ——DLL 的核心价值就是「隐藏复杂实现,只暴露简单的调用接口」,让开发者专注于自己的业务逻辑。
动态链接库(DLL)是 Windows 系统及基于.NET 等框架开发中广泛使用的文件格式,用于封装可重用的代码、资源和功能,供多个程序共享调用。以下从系统级 DLL、.NET 框架核心 DLL、第三方常用 DLL三个维度,介绍常见的 DLL 及其功能,帮助你理解它们的作用:
一、系统级 DLL(Windows 自带,底层功能支持)
这些 DLL 由 Windows 系统提供,支撑操作系统的核心功能,可被各种编程语言(包括 C#)调用,实现与系统交互。
kernel32.dll
CreateFile
函数操作文件句柄,或通过 Sleep
函数实现程序延迟。user32.dll
MessageBox
显示系统级弹窗,或 SetWindowText
动态修改窗口标题。gdi32.dll
advapi32.dll
ole32.dll
二、.NET 框架核心 DLL(C# 开发的基础依赖)
.NET 框架(包括.NET Framework、.NET Core/.NET 5+)的核心功能通过一系列 DLL 封装,是 C# 开发的基础。
mscorlib.dll
int
、string
)、基础类(Object
、Array
)、异常处理、垃圾回收机制等,是所有.NET 程序的必依赖。System.dll
String
)、集合类(List
)、IO 操作(File
)、XML 处理等。System.Core.dll
IEnumerable
)、Lambda 表达式支持、泛型高级功能,是 C# 3.0 + 语法的核心依赖。System.Runtime.dll
mscorlib.dll
,包含.NET Core 的基础类型和运行时功能,适配跨平台(Windows、Linux、macOS)。System.Data.dll
SqlConnection
)、数据读取(DataReader
)、数据集(DataSet
)等,支持 SQL Server 等数据库操作。System.Windows.Forms.dll
Form
)、控件(Button
、TextBox
)、事件处理等,用于开发桌面 GUI 程序。PresentationFramework.dll
三、第三方常用 DLL(扩展功能,提高开发效率)
开发者或厂商提供的 DLL,封装了特定领域的功能,可直接引用以避免重复开发。
Newtonsoft.Json.dll
NLog.dll
/log4net.dll
MathNet.Numerics.dll
EPPlus.dll
RestSharp.dll
OpenCvSharp.dll