回复 3楼 如蜗牛
静态库和动态库链接分析
1、文件组成结构
静态库:lib 头文件
动态库:lib dll 头文件
从组成上看,动态库和静态库的差异在于动态库多了一份dll文件,导致动态库可以独立存在,
2、链接方式
静态库:只能静态链接
动态库:动态链接和静态链接
3、运行效果
静态库:相当于直接把代码段写入到exe或dll文件中
动态库:相当于与exe或dll形成了一种关系,exe或dll可以到动态库中去查找所需要的函数
4、差别:
静态库:不需要导出就可以被链接使用
动态库:需要导出后方可使用(动态链接)
5、编译
静态库:编译后只有lib文件
动态库:若没有导出函数刚只能编译出dll文件而没有lib因此无法静态链接
6、导出类的链接
静态库:不需要导出,可以直接链接
动态库:必需要导出才可以链接,必须将类中所有函数导出才可以使用(对于public)
对于(protected)无论导出或者不导出均无法直接使用
对于(private)无论导出或者不导出均无法直接使用
7、导出子类
静态库:不需要导出,直接使用文件头就可以使用
动态库:必须导出子类,
若仅使用到子类函数,可以不用导出父类。
若需要使用到父类中继承的函数时,需要将父类中相应的函数导出,否则无法使用
私有函数成员无法在外部使用
若类不导出,只导出成员函数,同样可以正常使用,