项目包含比DLL文件更多的库

时间:2011-07-27 07:58:30

标签: c++ visual-studio dll

我尝试了解我下载的视觉工作室项目。 bin和lib文件夹有两个文件夹。 lib文件夹中的lib文件数大于bin文件夹中的dll数。

我认为每个dll文件都可以有一个lib文件(目标文件库)。因此,项目中的lib文件数等于或低于dll的数量。但在下载的项目中它反过来了吗?!是什么原因?是否有一些lib文件是静态链接的?

非常感谢你的帮助。

2 个答案:

答案 0 :(得分:2)

当然有lib没有相应的dll。如果将项目类型设置为“静态库”,则输出将是一个lib文件,它只能静态链接到另一个lib,dll或exe。

创建dll时,会自动创建一个lib文件,负责方便地包装LoadLibraryGetProcAddress个调用。您静态链接到此lib并为您加载dll。

答案 1 :(得分:1)

没有dll的libs在编译时静态链接到exe,而dll被编译到他们自己的dll文件中。 dll通常最好允许在不替换exe的情况下编译和交换dll。但是,有些项目只有静态链接的libs,导致一个没有dll的单个较大的exe。