装配(assembly)和动态链接库(dll)的区别

库是可用于开发应用程序的资源集合。库通常由子程序、函数、类、值和类型组成。在链接过程中(通常由链接器完成),库和可执行文件相互引用。DLL文件是动态链接的库文件。DLL是由微软开发的。但是由于DLL文件存在一些问题,Microsoft提出了汇编文件格式(使用.NET framework)。汇编文件在物理上与DLL非常相似,但它们有许多内部差异。...

程序集与DLL

库是可用于开发应用程序的资源集合。库通常由子程序、函数、类、值和类型组成。在链接过程中(通常由链接器完成),库和可执行文件相互引用。DLL文件是动态链接的库文件。DLL是由微软开发的。但是由于DLL文件存在一些问题,Microsoft提出了汇编文件格式(使用.NET framework)。汇编文件在物理上与DLL非常相似,但它们有许多内部差异。

什么是DLL?

动态链接库(通常称为DLL)是由Microsoft开发的共享库实现。它使用.dll、.ocx或.drv扩展名,它们在Microsoft Windows和OS/2操作系统中使用。dll由常规dll文件使用。ocx扩展名由包含ActiveX控件的库使用,.drv扩展名由旧系统驱动程序文件使用。DLL文件格式与Windows EXE文件相同(32位/64位Windows上的可移植可执行文件,16位Windows上的新可执行文件)。因此,任何代码、数据和资源的组合都可以包含在DLL文件中(就像在EXE文件中一样)。实际上,具有DLL文件格式的数据文件称为资源DLL。图标库(扩展名为.icl)和字体文件(扩展名为.fon和.fot)是资源DLL的示例。

称为secti***的组件组成一个DLL,每个节都有自己的属性,比如只读/可写和可执行/不可执行。代码段是可执行的,而数据段是不可执行的。代码部分是共享的,数据部分是私有的。这意味着使用DLL的所有进程将使用相同的代码副本,而每个进程都将有自己的数据副本。Windows的主要动态库是kernel32.dll,它包含Windows上的基本函数(与文件和内存相关的功能)。COM(Component Object Model)是DLL对OOP(面向对象编程)的扩展。传统的DLL比COM文件更容易使用。

什么是集合?

Microsoft引入汇编文件是为了解决DLL文件存在的几个问题。程序集文件是在Microsoft.NET framework中引入的。功能的可执行逻辑单元称为程序集。程序集可在.NET CLR(公共语言运行库)下执行。实际上,程序集以EXE或DLL文件的形式存在。但是,它们在内部与Microsoft Win32 DLL有很大不同。一个微软的元数据,是一个由MISL组成的中间语言。程序集是自描述的。清单包含诸如名称、版本、区域性、强名称、文件列表、类型和依赖项等信息。MISL代码通过CLR执行(不能直接执行)。

程序集和DLL有什么区别?

  • 发表于 2020-10-23 20:21
  • 阅读 ( 281 )
  • 分类:IT

你可能感兴趣的文章

如何修复windows中dll文件丢失的错误

... 什么是动态链接库(a dll)? ...

  • 发布于 2021-03-26 11:29
  • 阅读 ( 322 )

如何在windows10中管理winsxs文件夹

...DLL地狱”问题而创建的。简单地说,它涉及任何程序更改动态链接库(DLL)文件以影响需要使用相同DLL的其他应用程序的关键功能的实例。 ...

  • 发布于 2021-03-30 19:20
  • 阅读 ( 243 )

什么是dll文件,为什么我的电脑上少了一个?

...为什么运行? 在我们开始讨论为什么不应该从Internet下载动态链接库(DLL)文件之前,让我们先看看什么是DLL文件。DLL文件是一个库,其中包含一组代码和数据,用于在Windows中执行特定活动。应用程序可以在需要执行这些活动...

  • 发布于 2021-04-08 18:29
  • 阅读 ( 255 )

揭开windows黑暗角落的神秘面纱:注册表、dll等等

...错误的系统,但它不是你或任何其他程序可以做得更好。动态链接库(DLL)动态链接库通常作为.DLL文件出现在系统中,是任何程序都可以使用的代码库。它们有两个目的:由于多个程序可以同时使用它们,它鼓励人们重用代码...

  • 发布于 2021-05-18 15:18
  • 阅读 ( 156 )

动态链接库(dll)和执行(exe)的区别

dll和exe的主要区别在于dll是动态链接库的文件扩展名,其中包含其他程序可以使用的函数和过程,而exe是可执行文件的文件扩展名。 文件是计算机系统中存储信息的容器。有各种类型的文件,如文本文件,数据文件,二进制,...

  • 发布于 2021-07-01 01:03
  • 阅读 ( 232 )

命名空间(namespace)和装配(assembly)的区别

...间中,而Windows命名空间在系统命名空间中。 什么是装配(assembly)? 程序集是Microsoft.NET framework的标准组件。它可以作为可执行(.exe)文件或动态链接库(DLL)文件存在。程序集以清单的形式由关于模块、类型和其他元素的所有...

  • 发布于 2021-07-01 23:47
  • 阅读 ( 352 )

静止的(static)和动态链接(dynamic linking)的区别

静态链接和动态链接的主要区别在于,静态链接在编译的最后一步将程序中使用的所有库模块复制到最终的可执行文件中,而在动态链接中,当可执行文件和库都放在内存中时,链接发生在运行时。 一般来说,计算机程序是程...

  • 发布于 2021-07-02 00:20
  • 阅读 ( 716 )

vb语言(vb)和vba(vba)的区别

...成可执行的二进制文件,它需要一个外部源,比如Word。动态链接库VB可以利用动态链接库实现构件对象模型程序。VBA没有创建可以使用DLL的程序的规定。程序类型VB可以创建独立的应用程序,并且有编译器可以这样做。VBA无法创...

  • 发布于 2021-07-09 18:19
  • 阅读 ( 227 )

执行(exe)和动态链接库(dll)的区别

...XE和DLL也是一种文件扩展名,人们经常混淆。执行(exe) vs. 动态链接库(dll)EXE和DLL的区别在于,EXE文件可以在操作系统的帮助下执行。他们不需要任何其他应用程序来运行。另一方面,DLL文件不是独立运行的。它们需要一个EXE文件...

  • 发布于 2021-07-10 23:23
  • 阅读 ( 211 )

库(lib)和动态链接库(dll)的区别

...定类型的程序或软件来打开这些类型的文件。库(lib) vs. 动态链接库(dll)LIB和DLL的区别在于,DLL文件是可重用的,因为它们只需要链接到以前的DLL,而LIB不具备这种质量,代码必须从以前的程序复制到新的程序。另一个区别是LIB是...

  • 发布于 2021-07-11 17:21
  • 阅读 ( 217 )