动态链接库DLL
来源:互联网 发布:淘宝店铺购买 编辑:程序博客网 时间:2024/05/30 23:32
函数和数据被编译进一个二进制文件(通常扩展名为.LIB)。
静态库:
在使用静态库的情况下,在编译链接可执行文件时,链接器从库中复制这些函数和数据并把它们和应用程序的其它模块组合起来创建最终的可执行文件(.EXE文件)。在多个同样的程序执行时,系统保留了许多重复的代码副本,造成内存资源浪费。
动态库:
使用动态库时,有一个引入库lib和一个DLL。引入库lib包含被DLL导出的函数和变量的符号名,DLL包含实际的函数和数据。在编译链接可执行文件时,只需要链接引入库,DLL中的函数代码和数据并不复制到可执行文件中,在运行的时候,再去加载DLL,访问DLL中导出的函数。使用DLL的动态链接并不是将库代码拷贝,只是在程序中记录了函数的入口点和接口,在程序执行时才将库代码装入内存;不管多少程序使用DLL,内存中都只有一个DLL的副本;当没有程序使用它时,系统就将它移出内存,减少了对内存和磁盘的要求。
静态库中不能再包含其他的动态或静态库,而动态库则可以。
编译器寻找库文件的顺序是
1、程序员指定的库文件目录
2、当前工程的工程目录
3、windows目录
4、system32
5、系统的环境变量
待续,然后接着说动态链接库加载的隐式链接和显式链接。
0 0
- 动态链接库 (DLL)
- 动态链接库DLL
- 动态链接库DLL
- 动态链接库 dll
- DLL动态链接库
- DLL 动态链接库
- DLL(动态链接库)
- 动态链接库DLL
- DLL,动态链接库
- 动态链接库 DLL
- 动态链接库DLL
- 动态链接库 dll
- 动态链接库DLL
- 动态链接库DLL
- 动态链接库DLL
- 动态链接库DLL
- 动态链接库DLL
- 动态链接库DLL
- C++之函数指针
- 网络编程——进程间通信(匿名管道)
- QScrollBar样式
- ios开发nil检查、BOOL类型陷阱
- 飞鱼开发框架(四) 窗体自动获取用户登录信息
- 动态链接库DLL
- 搬运工 Spring MVC 教程,快速入门,深入分析
- javaweb学习总结(java增强)
- 双向冒泡排序
- [Leetcode] Generate Parentheses (Java)
- 设计模式之模板模式
- 用C++设计一个不能被继承的类
- 对于.swp文件的恢复方法
- 2014年公益收房验房活动火热召集中!陪你走过放心装修路!