最近在写接口程序,需要使用外部程序,走了很多弯路,现总结一下,供参考。
一、静态链接库[.library],动态链接库[.dll]
在项目属性中可以看到,配置类型描述了动态库,静态库,应用程序等。一般在项目创建的时候就指定了项目类型。
静态库项目生成文件:*.lib
动态库项目生成文件:.lib,.dll
静态库项目中lib包括源程序(函数和数据);动态库lib中只是项目的导入库(包括函数和变量的符号名),不包括源程序。
二:使用准备
1:引入一个动态库(dll)或者一个静态库(lib)时一般的步骤是::
完成函数,变量声明,添加头文件 *.h
配置库的目录 *.lib
将dll拷贝到可执行文件所在的目录(仅限于动态库)
2:头文件(.h)文件、.dll文件和.lib文件的关系:
2.1————.h文件是编译时需要的,因为里面有函数或变量声明。
2.2————.lib文件就有话说了,首先,对于一个静态库来说,其是以xxx.lib的形式,而对于一个动态库来说,当IDE帮我们生成了.dll文件时,还会同时生成一个xxx.lib文件,这里的.lib不是静态库,而是动态链接库的导入库(Import Libary)
2.3————.dll文件是生成的动态库,是在程序运行