动态链接库(DLL)的调用方式

个人理解动态链接库是封装好的,其他人可以直接调用的一种接口,实现函数等的共享。

静态链接库和动态链接库在使用中的不同:

静态链接库:lib中的函数被连接,并且全部实现都被字节包含在最终生成的EXE文件中。

动态链接库:dll 不必包含在最终的exe 中,静态调用时仅把函数名、变量名、类名等链接到exe 文件中,只有在运行时才从动态库中导入到可执行文件中。动态调用时exe 文件执行时可以直接动态地引用和卸载 DLL 文件

静态链接库不可以再包含其他动态或者静态库,而动态链接库可以包含其他的动态或者静态库。

动态链接库包含三种:

  • 非MFC动态库
  • MFC规则动态库
  • MFC扩展DLL

DLL函数分类:

  • DLL导出函数(变量,类)可供应用程序调用
  • DLL内部函数只能在DLL程序内使用,应用程序无法调用他们

导出函数的声明方式:

  • 在函数声明类型和函数名之间加上"_declspec(dllexport)”
  • 采用模块定义(.def)文件声明,需要在库工程中添加模块文件,格式如下:
    • LIBRARY 库工程名称
    • EXPORTS 导出函数名

DLL 的调用方式:

静态调用:由编译系统完成对DLL的加载和应用程序结束时DLL的卸载

  1. 拷贝对应的.dll、.lib、.h 文件到目标工程下
  2. 将这些文件包含到想对应的文件目录下
  3. 直接调用对应的函数即可

动态调用:由编程者用 API函数加载和卸载DLL(DLL加载-DLL函数地址获取-DLL释放)方式

  1. 拷贝对应的.dll、.lib、.h 文件到目标工程下
  2. 使用LoadLibrary() 获得句柄
  3. 使用GetProcAddress() 获取要调用的函数名

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值