DLL文件究竟是如何工作的?它们似乎有很多,但我不知道它们是什么,也不知道它们是如何工作的。

那么,他们是怎么回事?


当前回答

DLL是一种文件扩展名,被称为“动态链接库”文件格式,用于保存Windows程序的多个代码和过程。软件和游戏基于DLL文件运行;DLL文件被创建,以便多个应用程序可以同时使用它们的信息。

如果您想获得更多关于DLL文件的信息或面临任何错误,请阅读下面的帖子。 https://www.bouncegeek.com/fix-dll-errors-windows-586985/

其他回答

DLL文件包含一个导出表,它是一个可以由调用程序查找的符号列表。这些符号通常是具有C调用约定的函数(__stcall)。导出表还包含函数的地址。

有了这些信息,调用程序就可以调用DLL中的函数,即使它在编译时没有访问DLL的权限。

介绍动态链接库有更多的信息。

http://support.microsoft.com/kb/815065

A DLL is a library that contains code and data that can be used by more than one program at the same time. For example, in Windows operating systems, the Comdlg32 DLL performs common dialog box related functions. Therefore, each program can use the functionality that is contained in this DLL to implement an Open dialog box. This helps promote code reuse and efficient memory usage. By using a DLL, a program can be modularized into separate components. For example, an accounting program may be sold by module. Each module can be loaded into the main program at run time if that module is installed. Because the modules are separate, the load time of the program is faster, and a module is only loaded when that functionality is requested. Additionally, updates are easier to apply to each module without affecting other parts of the program. For example, you may have a payroll program, and the tax rates change each year. When these changes are isolated to a DLL, you can apply an update without needing to build or install the whole program again.

http://en.wikipedia.org/wiki/Dynamic-link_library

根据微软

动态链接库是包含应用程序运行所需的数据、代码或资源的文件。这些文件是由windows生态系统创建的,可以在两个或多个应用程序之间共享。

当一个程序或软件在Windows上运行时,应用程序的工作方式在很大程度上取决于该程序的DLL文件。例如,如果一个特定的应用程序有几个模块,那么每个模块之间的交互方式由Windows DLL文件决定。

如果你想要详细的解释,查看这些有用的资源

什么是dll文件,关于dll文件

dll(动态链接库)包含一个或多个应用程序或服务使用的资源。它们可以包含类、图标、字符串、对象、接口以及开发人员需要存储的除UI之外的几乎任何东西。

什么是DLL?

DLL文件是二进制文件,可以包含可执行代码和资源,如图像等。与应用程序不同,它们不能直接执行,但应用程序将在需要时加载它们(或在启动期间一次性加载)。

它们重要吗?

大多数应用程序将在启动时加载所需的DLL文件。如果没有找到其中任何一个,系统将根本无法启动该进程。

DLL文件可能需要其他DLL文件

与应用程序需要DLL文件一样,DLL文件本身也可能依赖于其他DLL文件。如果在依赖链中没有找到其中一个DLL文件,则应用程序将无法加载。使用任何依赖行走器工具(如依赖行走器)都可以很容易地进行调试。

系统文件夹中有很多这样的文件

大多数系统功能以DLL文件的形式公开给用户程序,因为它们是共享代码/资源的标准形式。每个功能分别保存在不同的DLL文件中,以便只加载所需的DLL文件,从而减少对系统的内存限制。

已安装的应用程序也使用DLL文件

DLL文件也成为一种物理上分离功能的形式,如上所述。好的应用程序还尽量在绝对需要DLL文件时才加载DLL文件,这样可以减少内存需求。这也会导致应用程序附带大量DLL文件。

DLL 地狱

但是,有时当共享DLL文件与需要它们的程序之间的版本不匹配时,系统升级通常会破坏其他程序。系统检查点和DLL缓存等是M$解决这个问题的举措。. net平台可能根本不会面临这个问题。

我们如何知道DLL文件中有什么?

您必须使用像DUMPBIN或Dependency Walker这样的外部工具,它不仅会显示DLL文件中包含哪些公开可见的函数(称为导出),还会显示它需要哪些其他DLL文件,以及该DLL文件依赖于哪些从这些DLL文件中导出。

我们如何创建/使用它们?

请参考供应商提供的编程文档。c++,请参考MSDN中的LoadLibrary。