DLL和LIB文件 [英] DLL and LIB files

查看:153
本文介绍了DLL和LIB文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

DLL和LIB文件有什么区别?
什么是DLL文件里面什么是LIB文件里面是什么?
创建可执行文件需要DLL和LIB文件吗?

What is the difference between a DLL and a LIB file? What is inside a DLL file and what is inside a LIB file? Are both DLL and LIB files necessary to create an executable?

推荐答案

DLL文件是最终的构建产品,这是你在客户的机器上安装的。它非常类似于一个EXE文件,结构相同,但可以根据需要加载到另一个程序中。

A DLL file is the final build product, that's what you install on your customer's machine. It is very similar to an EXE file, same structure, but can be loaded on demand into another program.

一个LIB文件用于构建您的程序,它只存在于您的构建计算机上,并且不发运。有两种。静态链接库是一个.obj文件包,收集到一个单一的文件中。链接器在需要解析外部标识符时从文件中选择任何代码块。

A LIB file is used to build your program, it only exists on your build machine and you don't ship it. There are two kinds. A static link library is a bag of .obj files, collected into a single file. The linker picks any chunks of code from the file when it needs to resolve an external identifier.

但是与DLLs更相关,一个LIB文件也可以是一个导入库。然后是一个简单的小文件,包括DLL的名称和DLL导出的所有函数的列表。在构建使用DLL的程序时,您需要将其提供给链接器,以便知道外部标识符实际上是由DLL导出的函数。链接器使用导入库向EXE的导入表中添加条目。然后,Windows会在运行时使用它来确定需要加载哪些DLL来运行程序。

But more relevant to DLLs, a LIB file can also be an import library. It is then a simple small file that includes the name of the DLL and a list of all the functions exported by the DLL. You'll need to provide it to the linker when you build a program that uses the DLL so it knows that an external identifier is actually a function exported by the DLL. The linker uses the import library to add entries to the import table for the EXE. Which is then in turn used by Windows at runtime to figure out what DLLs need to be loaded to run the program.

这篇关于DLL和LIB文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆