静态链接库与动态链接库
静态链接库(static link library),也就是你经常看到的*.lib文件;动态链接库(Dynamic Link Library),也就是你经常看到的*.dll文件。如果你是初学者或者对静态库与动态库还没有概念,可以先将其理解为一种仓库,它提供给你一些可以直接拿来用的变量、函数或类,在仓库的发展历史中,经历了“无库-->静态库-->动态库”的过程。
1.静态库(lib)将导出声明和实现都放在lib中。编译时把(lib)文件中被用到的所有函数代码直接链接进目标程序(如exe文件);动态库(dll)相当于一个h文件,是对实现部分(.dll文件)的导出部分的声明。编译后只是将导出声明部分编译到宿主程序中,运行时候需要相应的dll文件支持。
2.静态链接库中不能再包含其他的动态链接库或者静态库,而在动态链接库中还可以再包含其他的动态或静态链接库。
3.使用静态库时要同时包含.lib和.h文件。
关于动态库的更详细介绍,已经有高人总结的很详细了,我就不班门弄斧了。
请看以下学习资料:《VC++动态链接库(dll)编程深入浅出》
原文:http://blog.csdn.net/luoweifu/article/details/27866769