首页 > 系统相关 >什么是 Windows 操作系统 DLL 文件的 Side-by-Side Assemblies 技术

什么是 Windows 操作系统 DLL 文件的 Side-by-Side Assemblies 技术

时间:2023-11-19 10:58:23浏览次数:35  
标签:文件 需要 Windows 程序 dll DLL Side

.dll 文件是 Windows 操作系统中的一种重要文件类型。全名为“动态链接库”(Dynamic Link Libraries),它包含了一些可以由多个程序共享的代码和数据。这使得在 Windows 下的开发者可以将一些公共的功能和数据集中到一些 .dll 文件中,而这些功能和数据可以被任何需要的程序所调用和使用。

例如,让我们考虑一个常见的情况:许多 Windows 程序都需要一些基本的用户界面元素,如对话框、按钮、滚动条等。微软公司已经在 Windows 操作系统中开发了这些用户界面元素,并把它们放在了一些 .dll 文件中。这样,开发者在创建自己的程序时,只需要调用这些 .dll 文件,就可以在自己的程序中使用这些用户界面元素,而不需要自己从头开发。

从这个例子中,我们可以看到 .dll 文件的两个主要优点。首先,.dll 文件可以被多个程序共享,这意味着你的计算机上只需要一份这些文件,就可以满足所有程序的需要。这不仅可以节省硬盘空间,也可以降低程序运行时的内存需求。其次,.dll 文件可以使得程序开发变得更加简单和快速。因为开发者可以利用 .dll 文件中的预先定义好的功能,而不需要自己从头开始开发。

然而,.dll 文件也有一些潜在的问题。其中最常见的问题就是 DLL 地狱 问题。这个问题通常发生在两个或更多的程序都依赖于同一个 .dll 文件,但是这些程序需要的 .dll 文件版本却不一样。例如,程序 A 需要版本 1.0 的 .dll 文件,而程序 B 需要版本 2.0 的 .dll 文件。如果你先安装了程序 A,然后安装了程序 B,那么程序 B 的安装程序可能会覆盖掉原来的 .dll 文件,导致程序 A 无法正常运行。

为了解决这个问题,微软引入了一种叫做 侧边加载(Side-by-Side Assemblies)的技术,允许不同的程序使用不同版本的 .dll 文件。在这个技术下,每个程序都有一个 清单(Manifest)文件,用来记录它所需要的 .dll 文件的版本。当程序运行时,Windows 会根据这个清单文件,为程序提供正确版本的 .dll 文件。

虽然 .dll 文件在 Windows 操作系统中发挥着重要的作用,但是对于大多数的用户来说,他们并不需要直接处理这些文件。这是因为 .dll 文件通常是由程序安装器自动安装和管理的。但是,如果你遇到了一些程序无法运行,或者系统告诉你缺少某个 .dll 文件的错误,那么你可能需要手动修复。

标签:文件,需要,Windows,程序,dll,DLL,Side
From: https://www.cnblogs.com/sap-jerry/p/17841704.html

相关文章

  • 配置windows ntp time
    1、HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer\,将“Enabled”数值数修改为1,保存。然后services.msc重启ntptime服务。配置enable后,客户端执行ntpdate-d-uip返回toohigh  2、HKEY_LOCAL_MACHINE\SYSTEM\CurrentControl......
  • 为什么在ASLR机制下DLL文件在不同进程中的加载基址相同?
    1. DLL注入实现以下是实现DLL注入的简要步骤:1.1打开VisualStudio,并创建一个新的DLL项目。1.2在"dllmain.cpp"添加以下的代码1//dllmain.cpp:定义DLL应用程序的入口点。2#include"pch.h"34BOOLAPIENTRYDllMain(HMODULEhModule,5......
  • 一款.NET开源的小巧、智能、免费的Windows内存清理工具 - WinMemoryCleaner
    前言我们在使用Windows系统的时候经常会遇到一些程序不会释放已分配的内存,从而导致电脑变得缓慢。今天给大家推荐一款.NET开源的小巧、智能、免费的Windows内存清理工具:WinMemoryCleaner。使用Windows内存清理工具来优化内存,这样不必浪费时间去重新启动电脑。工具主要特点......
  • CCC Spake2+ Inside
     1.关于SPAKE2+   aPasswordAuthenticatedKeyExchange(PAKE)protocolrunbetweentwopartiesforderivingastrongsharedkeywithnoriskofdisclosingthepassword.SPAKE2+isanaugmentedPAKEprotocol,asonlyonepartymakesdirectuseofth......
  • windows 微信小游戏
    有好几年没怎么使用Windows系统了,Windows版本微信居然小程序和小游戏了,这个确实会方便很多用户。总体来说是不错的。对我来说,这个非常不安全,非常容易制作辅助和外挂,感觉现在小程序Windows版本的辅助应该满天飞了吧 我现在简单记录一下小游戏存储路径,搞一些小动作需要知道的......
  • Windows7使用docker
    Windows7使用docker注:win10可以下载桌面版,详情看官网1、安装win7需要dockertoolbox进行安装,但官网以前有,现在没了,所以要去菜鸟教程给的地址下载:[阿里镜像](Indexof/docker-toolbox/windows/docker-toolbox/(aliyun.com))下载后直接安装,selectcomponents最好勾上没有的安......
  • Windows系统 nacos 部署
     转载:https://www.cnblogs.com/simon-xie/p/15730368.html  Windows系统 Nacos安装及部署 一、下载地址https://github.com/alibaba/nacos二、新建数据库新建一个实例名为nacos的数据库,并执行nacos/conf下的nacos-mysql.sql文件创建表三、修改配置打开conf下的ap......
  • Windows环境安装PostgreSQL
    Windows环境安装PostgreSQL安装步骤要在DockerDesktop上安装PostgreSQL数据库,请按照以下步骤进行操作:首先,确保您已经安装了DockerDesktop,并且它正在运行。打开终端或命令提示符,并输入以下命令来从DockerHub下载并运行PostgreSQL镜像:dockerrun--namemy-postgres-e......
  • 4.6 Windows驱动开发:内核遍历进程VAD结构体
    在上一篇文章《内核中实现Dump进程转储》中我们实现了ARK工具的转存功能,本篇文章继续以内存为出发点介绍VAD结构,该结构的全程是VirtualAddressDescriptor即虚拟地址描述符,VAD是一个AVL自平衡二叉树,树的每一个节点代表一段虚拟地址空间。程序中的代码段,数据段,堆段都会各种占用一......
  • 使用 ABAP + OLE 消费 Windows DLL 文件里的代码和服务
    在SAPABAP中,我们可以使用OLE(ObjectLinkingandEmbedding)技术来实现对WindowsDLL文件的代码和服务的消费。以下是一个详细的解决方案:首先,我们需要明确OLE技术在ABAP中的应用。OLE是由微软开发的一种技术,它允许对象(即应用程序功能)被嵌入到其他应用程序中。在ABA......