在Windows上使用动态链接时,不光需要头文件 .dll文件 还需要一个.lib 文件. 不是动态链接吗?为什么还需要静态库.lib文件? 实际上,这个.lib文件并不是静态库,而是 导入库 文件,只是使用和静态库相同的扩展名而已. 静态库本身就包含了实际执行代码.符号表等等,所以只要头文件就可以了. 而动态链接而言,其实际的执行代码位于动态库中,需要导入库提供地址符号表等信息,确保程序找到对应函数的一些基本地址信息. 可以看到两个.lib文件大小差距很大. 参考:VS2013生成.使用dll…