静态库的好处就是一个lib文件,最后的静态链接到exe中,简单方便;
静态lib库可以导出类和函数,与动态库是一样的,这里要注意一个与动态库的区别;
动态库需要 __declspec( dllimport ) 和 __declspec( dllexport ) 到导出或导入函数;
静态库的lib文件可以看做是cpp文件,只是被封装了;
1:
这里在导出函数的时候要注意一个细节:
.h文件中当然是函数声明,.cpp中是函数实现;
不过要注意,因为导出的(全局)函数,lib文件相当于.cpp文件,所以, .h文件中的函数前要添加“extern”;
如果不在.h文件前添加extern,其它exe可以用么?如果,你的lib工程与exe工程都在同一个计算机系统中,不删除编译后的.pch文件,应该没有问题,因为其实引用了cpp文件,可换到其它机器就不可以运行了;
2:
有人说 静态空中不可以引用其它lib文件,因为环境配置“属性”中没有“连接器”选项。
解决方法,可以换种方式,如果我想用静态方式封装GDI+几个函数可以这么添加GDI+的lib文件:
#pragma comment(lib,"gdiplus.lib")
。