DLL系列---Dll的隐式链接和显示链接

本文介绍了DLL的隐式链接和显示链接。隐式链接通过包含DLL的头文件和链接引入库(.lib)实现,使得程序可以直接使用DLL的函数,但需要头文件和引入库。显示链接则在运行时动态加载DLL,仅需.dll文件,使用LoadLibrary和GetProcAddress等API进行函数调用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  DLL系列---Dll的隐式链接和显示链接

一. 首先我们需要明确几个关于DLL概念

显示链接、隐式链接,动态调用、静态调用,动态链接库、静态链接库、Import导入库。动态调用即显示链接,静态调用即隐式链接,在后面主要也围绕这两种链接方式展开先解决这几个链接库吧,动态链接库(Dynamic Linked Library)缩写就是DLL就是将一些api函数写入到一个dll文件中在程序在程序运行是再加载到程序的进程空间中使用,这样可以让运行程序本身体积较小,方便模块化编程。后缀名一般是.dll,常用的dll比如说windows中常用的User32.dll、Lpk.dll和Linux中的so文件类似。静态链接库(StaticLibrary)和动态链接库作用基本相同但是静态链接库在编译链接可执行文件时,链接器从库中复制这些函数和数据并把它们和应用程序的其它模块组合起来创建最终的可执行文件(.EXE文件),所以组成的exe文件体积较大。静态链接库后缀名一般为.lib。Import导入库就综合了两种库包含两种文件.dll和.lib文件,.dll文件和上面的动态链接库相同可能包含导出函数和数据等但这里的.lib文件就和静态链接库有所不同这里的.lib文件只是包含一些被DLL导出的函数和变量的符号名,一般称这个lib文件为引入库(这里用到的两个文件链接的方法即是后文将说明的隐式链接)。

二.dll的隐式链接和显示链接

我们这里将以《Windows核心编程》19章515页的MyLib例子展开说明,首先我们需要得到我们的链接库。直接VS中建立一个dll工程,工程名为MyLib代码如下
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值