加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

windows – 可以使用压缩的dll吗?

发布时间:2020-12-14 03:53:17 所属栏目:Windows 来源:网络整理
导读:我真的缺乏在 Windows上开发东西的经验,我可能错过了一些明显的东西,试着保持冷静:) 我有一个应用程序(Qt C),它使用自己路径中的一些.dll(我的意思是我将.dll与.exe一起提供).当我发送应用程序时,我通过upx压缩dll.它显着压缩它们,我可以使用这些dll而不解压
我真的缺乏在 Windows上开发东西的经验,我可能错过了一些明显的东西,试着保持冷静:)

我有一个应用程序(Qt C),它使用自己路径中的一些.dll(我的意思是我将.dll与.exe一起提供).当我发送应用程序时,我通过upx压缩dll.它显着压缩它们,我可以使用这些dll而不解压缩.

我的印象是我做错了,但它只是偶然的,所以我想确定,使用压缩的dll是否可以?或者我应该在任何时候期待不可预测的问题? (这是主要问题)

如果.dlls可以在压缩模式下使用,那么为什么地球我们首先将它们解压缩.

解决方法

这不是“偶然工作”的东西,UPX旨在压缩Win32-PE(以及许多其他格式),无论是可执行文件还是DLL.

至于“可以吗?”,是的,当然只要你没有违反另一方的许可,它就是“OK”.
与Qt相关的任何事情都不太可能发生,但原则上,它是可能的.例如,可以使用一些具有许可条款的DLL,例如“以二进制形式分发,等等,不允许修改”.比方说,像MSVC或DirectX可再发行组件,或某些图形卡供应商的专有API.在任何情况下,在冒险违反许可证之前,记住这一点并检查许可证并不是一个错误.

措辞你的问题“可以吗?”略有不同:“这是明智的吗?”,答案是:可能不是.磁盘上额外的几兆字节通常并不重要.当您将所有内容打包到安装程序中,并且用户通过Internet下载时,数据仍会被压缩,因此在这方面也是如此.

但是,压缩,无论是使用UPX还是其他可执行打包程序,还是Windows的文件系统压缩,都会产生副作用.它会导致额外的地址空间碎片,它会禁用异步传输,并且它会丧失操作系统从工作集中丢弃DLL页面的能力,并在访问时透明地从PE映像重新加载它们.

最后一句话意味着操作系统必须在页面文件中进行分配,并且当您的进程工作集被移出以为其他内容腾出空间时,它必须将页面写入页面文件.没有其他办法.现在,如果用户已禁用页面文件,该怎么办…

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读