Dll 什么是动态链接库?

Dll 什么是动态链接库?,dll,Dll,这可能是一个非常棘手的问题,但在今天的web应用程序开发世界中,许多程序员不需要太多地处理dll,因此不必费心了解它们的用途 那么什么是dll 它是用来干什么的 它是如何工作的 如何创建一个 在什么情况下创建一个合适的 我听说dll是用来存储函数库的,但除此之外我知道的不多。希望这里有人能给我一些启发,这样我就不必再去想我的Windows目录中所有的.dll文件都在做什么了。动态链接库 举个例子,如果你将别人的DLL加载到你的应用程序中,你可以从中使用一些编程 您可以加载一个DLL,该DLL生成

这可能是一个非常棘手的问题,但在今天的web应用程序开发世界中,许多程序员不需要太多地处理dll,因此不必费心了解它们的用途

那么什么是dll

  • 它是用来干什么的
  • 它是如何工作的
  • 如何创建一个
  • 在什么情况下创建一个合适的

  • 我听说dll是用来存储函数库的,但除此之外我知道的不多。希望这里有人能给我一些启发,这样我就不必再去想我的Windows目录中所有的.dll文件都在做什么了。

    动态链接库

    举个例子,如果你将别人的DLL加载到你的应用程序中,你可以从中使用一些编程

    您可以加载一个DLL,该DLL生成总是以“5”或其他数字开头的随机数

    在您的程序中,您可以调用CrazyDLL.GeneratorAndomNumbersSorta(),它将返回数字

    对于一个真实的例子,我有一个DLL,它组合了4个文本框(您可以使用这些文本框键入IP地址),它自动只接受小于256的数字,并处理按backspace键跳转到上一个文本框的操作

    我已经用这些代码创建了一个DLL,现在我所要做的就是拖放更多的IP地址文本框集合,而不必重复所有代码

    同一DLL还具有将IP地址转换为十六进制字符串和其他有用代码的功能。

    来源:

    动态链接库(DLL)是包含其他模块(应用程序或DLL)可以使用的函数和数据的模块。

    DLL=动态加载链接库。正如你所说,它基本上是函数集、C++类和/或全局变量。您可以静态加载DLL(即,当程序启动时,操作系统会自动加载DLL)或动态加载DLL(程序显式加载DLL),此时DLL中的函数和内容可供程序使用

    创建一个类似于创建EXE,只是不需要有
    main()
    函数。有链接器指令告诉链接器创建DLL而不是EXE

    您希望这样做的主要原因是将一些代码封装在一个地方,并从多个exe使用它,而不是将代码链接到每个exe中


    一个历史原因是,由于某些代码实际位于不同的文件中,您的exe可能更小。这意味着exe在内存中占用的空间量可以更小。在现代系统上,这一问题已不像过去那样严重,尽管在Windows Mobile上可能仍然是一个问题。

    DLL是一个动态链接库。它是代码和/或数据的集合,可由多个应用程序(或其他库/模块)使用

    例如,库中提供了处理文件、使用GUI组件等的常用方法,因此多个应用程序可以使用相同的功能。这不仅减少了多次构建相同内容的需要,而且还确保了应用程序之间的公共对话框是相同的

    库可以在运行时加载,从而在不同的并发应用程序之间共享。这称为动态链接

    在某些情况下,库可以包含在应用程序本身中。这称为静态链接。静态链接以牺牲灵活性为代价使部署更加容易,因为不同的应用程序将各自加载相同的DLL副本

    但是,静态链接并不总是一种选择。例如,您不能静态链接.NET应用程序。用户必须具有.NET库才能运行.NET应用程序,并且库(或在.NET中调用的程序集)在运行时加载


    DLL由用于创建应用程序的相同工具创建。具体细节在很大程度上取决于所使用的工具。

    DLL=动态链接库

    这个名字实际上很能描述他们的成就

    允许您将特定问题域的代码隔离到单个位置。然后在多个应用程序之间共享此信息。该库可以随时替换为另一个库,以修复bug或添加功能

    链接

    您可以将库“链接”到应用程序,这样库中的逻辑就不会直接编译到应用程序中

    动态

    该库可以按需加载。操作系统可以只加载所需的部分,而不是将庞大的单个EXE加载到内存中。另外,如果应用程序之间共享DLL,操作系统可以优化库的加载方式,并在应用程序之间共享库。

    文件可以描述为小的“子程序”,用于帮助更大的程序运行良好。它们提供了一种将各种硬件和软件资源(在其运行时会话的不同点)链接到它们所基于的主可执行程序的方法,这种链接基于“根据需要”的基础。这样,当程序第一次运行时,就无需将与主可执行程序有关的所有内容加载到计算机的RAM(随机存取存储器)中

    DLL所携带的软件资源包括各种程序函数的代码,这些函数并不是保持程序运行所真正需要的:也就是说,这些函数在给定的计算会话中只需要在特定时间调用,甚至可能根本不需要调用。当程序第一次运行时,将这些功能加载到计算机的RAM上(对于给定的程序,可能会有相当多的功能),然后在整个会话期间将它们保留在RAM上,这将是对RAM空间的浪费,这被认为是一种额外的浪费

    一项重大进展:

    DLL的开发是计算领域的一个重大进步,因为在它们出现之前,一切都与计算机有关