我尝试了解我下载的视觉工作室项目。 bin和lib文件夹有两个文件夹。 lib文件夹中的lib文件数大于bin文件夹中的dll数。
我认为每个dll文件都可以有一个lib文件(目标文件库)。因此,项目中的lib文件数等于或低于dll的数量。但在下载的项目中它反过来了吗?!是什么原因?是否有一些lib文件是静态链接的?
非常感谢你的帮助。
答案 0 :(得分:2)
当然有lib没有相应的dll。如果将项目类型设置为“静态库”,则输出将是一个lib文件,它只能静态链接到另一个lib,dll或exe。
创建dll时,会自动创建一个lib文件,负责方便地包装LoadLibrary
和GetProcAddress
个调用。您静态链接到此lib并为您加载dll。
答案 1 :(得分:1)
没有dll的libs在编译时静态链接到exe,而dll被编译到他们自己的dll文件中。 dll通常最好允许在不替换exe的情况下编译和交换dll。但是,有些项目只有静态链接的libs,导致一个没有dll的单个较大的exe。