开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 22367|回复: 144
收起左侧

[2020开源大赛(第五届)] 【首发】让你的易程序和图片资源实现“参变分离”

    [复制链接]

结帖率:100% (4/4)
发表于 2020-11-25 15:14:03 | 显示全部楼层 |阅读模式   四川省宜宾市

前言:

  • 是否有易友出现过下列情况:

    • 源码中放置大量的资源文件,严重拖慢易文件打开速度。
    • 源码出现损坏,而且源码中有大量的资源文件,导致源码极大,修复极度困难,甚至无法修复。
    • 源码附带资源文件多,体积集中于一个核心源码文件中,非常不轻量化。
  • 如果你有本程序的话,那么你就不用担心以上内容了!

正文:

  • 本程序只是一个宏,不会再你的代码中增加任何多余代码,而是将图片/常量等数据和主程序分离,编译时重新打包为一个文件,效果图如下(注:图中的“Macro”指令就是核心库中的指令:“宏”,这是一个编译前命令):
  • 工作原理:
    • 首先“宏”命令在编译时会引用外部的Dll(此处我编写了一个SourcePlugin.dll)
    • 然后,编译器会调用SourcePlugin.dll中的“MacroProcessor”接口,“MacroProcessor”接口将会接收编译器传来的处理数据,告诉SourcePlugin.dll应该引用哪些数据。
    • 接着,SourcePlugin.dll利用易源码解析,读出指定易文件的常量表,并根据源码需要整合到程序中。

优点:

  • 该操作似乎把易程序携带文件变得复杂了起来,但是实际上不然,它有以下好处:
    • 首先,如果你要携带大量的资源文件的话,该方法可以大幅度减小主程序的大小,使得主程序更加轻量化。
    • 其次,本宏支持直接引用外部文件作为资源,极大地方便了编程和文件携带(如果你要备份的话,只需要备份一次资源文件,以后只需要备份主程序代码即可。)
    • 然后,SourcePlugin.dll利用易源码解析,可以直接引用外部易程序中的资源文件,减少了储存空间的浪费(如果你要传云盘的话)
    • 最后,本程序还可以直接应用到易模块中,以后就不用搞得一个模块十多MB的了,只需要一个100多KB的SourcePlugin.dll,主模块,携带资源的易文件即可,更新模块只需更新主模块(只要不修改资源文件)

缺点:

  • SourcePlugin.dll使用了易源码解析,在编译时需要把携带资源的易文件加载到内存,对于大文件可能会导致易程序无法分配到足够的内存导致程序崩溃,所以对于处理较大的资源文件时,最好先保存你的程序。
  • SourcePlugin.dll使用的易源码解析在解析很大的易文件时可能导致降低编译速度,不过,我已经大幅度精简了分析部分的源码,保证基本不影响编译速度。

PS:

  • 使用或参考本程序前,请先将“宏插件_源码.e”编译为“SourcePlugin.dll”放到“e\plugins”文件夹下,本帖不接受什么缺少文件的反馈。
  • 本程序虽然代码行相对简洁,但是还是凝结着我的一些思考,如果你觉得可以的话,请:

附件下载:


宏-”参变分离“.zip (49.81 KB, 下载次数: 292)

点评

*炫彩界面库助力精易2020开源大赛*https://bbs.125.la/forum.php?mod=viewthread&tid=14652688&extra=page%3D1%26filter%3Dtypeid%26typeid%3D529   广东省佛山市  发表于 2020-11-29 21:09

评分

参与人数 19好评 +13 精币 +335 收起 理由
a46213599 + 1 支持开源~!感谢分享
ghost12 + 1 支持开源~!感谢分享
116154801 + 1 支持开源~!感谢分享
bnt + 1 + 2 新技能已get√
ds9660 + 2 建议直接收购易语言,比吴涛还懂易语言更新
imoling + 1 + 1 支持开源~!感谢分享
易语言资源网 + 1 + 5 支持开源~!感谢分享
inat + 1 新技能已get√
兔子君 + 1 + 300 很好很强悍,坚持下去哦~
zlw310282 + 1 + 2 感谢分享,很给力!~
勾栏听曲 + 1 + 2 新技能已get√
汉族 + 1 + 3 新技能已get√
傻妞 + 1 支持开源~!感谢分享
szxiao + 1 + 2 感谢分享,很给力!~
粉风 + 1 + 2 支持开源~!感谢分享
sxaxin + 1 + 2 支持开源~!感谢分享
峰生水起之林 + 1 感谢分享,很给力!~
国王软件 + 1 + 2 感谢分享,很给力!~
冰点 + 1 + 5 支持开源~!感谢分享

查看全部评分

本帖被以下淘专辑推荐:

发表于 2024-3-22 14:00:00 | 显示全部楼层   安徽省马鞍山市
66666666666666666
回复 支持 反对

使用道具 举报

结帖率:84% (36/43)
发表于 2023-11-4 12:45:50 | 显示全部楼层   福建省宁德市
回复 支持 反对

使用道具 举报

结帖率:84% (36/43)
发表于 2023-11-4 12:45:29 | 显示全部楼层   福建省宁德市
回复 支持 反对

使用道具 举报

结帖率:100% (3/3)
发表于 2023-8-10 21:29:05 | 显示全部楼层   江苏省南通市
这个 大佬好久没上线了,技术强悍。
回复 支持 反对

使用道具 举报

结帖率:75% (3/4)

签到天数: 2 天

发表于 2023-7-12 14:20:17 | 显示全部楼层   云南省曲靖市
  支持开源!谢谢分享!
回复 支持 反对

使用道具 举报

结帖率:50% (2/4)
发表于 2023-6-30 22:06:49 | 显示全部楼层   陕西省汉中市
图片资源表默认写入的路径是什么?
回复 支持 反对

使用道具 举报

结帖率:0% (0/1)

签到天数: 9 天

发表于 2022-7-16 22:11:23 | 显示全部楼层   湖南省永州市
大佬,我用这个来免zc   (大漠)DM.DLL  为啥不行呀!是我哪里写错了么
回复 支持 反对

使用道具 举报

结帖率:82% (27/33)

签到天数: 3 天

发表于 2022-5-26 06:00:35 | 显示全部楼层   上海市上海市
精彩文章希望继续努力
回复 支持 反对

使用道具 举报

结帖率:93% (13/14)
发表于 2022-5-26 03:30:02 | 显示全部楼层   广西壮族自治区贺州市
整个论坛最穷就是我了,0个精币
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表