文章

dll、lib、h

链接库是一种把一部分代码分离出去的技术,动态链接可以实现一部分的不编译主体的情况下替换部分代码,理论上甚至可以热替换。静态链接的意义除了可以防止源码泄漏以外和为dll提供索引外,应该还有一些我所不知道的好处。

.h是lib的入口。编译器在编译时必须要有调用函数的定义,这个就是放置在.h里面的。在编译时.lib会被编译进源程序中,提供dll的索引,当仅适用静态链接库时,lib里面也会包含代码(前者叫导出库,后者不清楚)。当运行时,程序就会根据被编译进汇编的函数地址去对应的dll里面找函数的汇编。也就是说程序只有exe和对应的dll。

dll、lib都是库的项目文件编译出来的。

lib、dll、以及对应的h都需要在编译时告诉编译器(广义)。

vs在使用这些时需要在项目配置里面把他们包含进去。

License:  CC BY 4.0