找回旧帖:谢谢斩月,谢谢monkeycz,谢谢dtcser,谢谢超级大BUG

一个偶然的时间,我无意中发现,我(liigo)于2008年10月份发表于CSDN博客上的一篇小文,《谢谢斩月,谢谢monkeycz,谢谢dtcser、超级大BUG》已经无缘无故的消失了。现在我只能通过百度快照才能证实它曾经存在过:

 

 

百度快照地址:http://cache.baidu.com/c?m=9f65cb4a8c8507ed4fece7631046893b4c4380146d96864968d4e414c422461f1c3db6e63a734342849021274ab24a5cecfb3078200357e4da8ac25e98e6d27e209f5136676cf65664d10edfbb5125b037e65afed91cf0bb8025e5afc5a4ab4325c944737c97f0fa4d7613dd1ff40347e5b1e848025f61e5b06c3ca8122661&p=8f71c54ad18516fc57e8cf3816&user=baidu

(快照显示此文发表/最后编辑于2008年10月02日19:09:00,前面的图片似乎被tu.6.cn处理过显示不完整。)

 

快照中的文章链接地址(http://blog.csdn.net/liigo/archive/2008/10/02/3009840.aspx)已然无法打开,CSDN博客系统提示“在你访问时发生了错误:文章无法获取。”。

 

其实发现文章消失是数月前的事了,我一直没有处理。前几天再次想起此事,于是在CSDN博客专家群中咨询官方人员,得到的答复是,由于时间过去太久,文章无法还原,建议我自行通过搜索引擎的缓存页面恢复文章内容。可是我遍查各大搜索引擎,似乎只有百度缓存过标题和摘要,没见有搜索引擎缓存该文全文内容。印象中有论坛部分引用过文中的某段文字,一时之间也难以找到。

 

也许是运气比较好吧,我在自己私人电脑里翻出了当时备份的文字和图片,此文因此得以重见天日,庆幸中。

 

以下是原文:

 

 


 

 

谢谢斩月,谢谢monkeycz,谢谢dtcser,谢谢超级大BUG。

 

斩月计划(http://ZanMoon.monkeycz.com),分离核心支持库,打造小于10k的易程序。

 

monkeycz,斩月计划的创始人、作者。

 

dtcser、超级大BUG,斩月类库(ZCL)的主要开发者(之一)。

 

斩月计划已经有一两年没有更新了,有易友(dtcser,licengxin)在现有版本基础上进行过二进制修改,一并感谢。

 

“斩月计划”是一个很好的、很有创意和实用价值的项目,它有效解决了易语言程序必须依赖核心库、程序尺寸偏大的问题,满足了一部人对这方面的需求,在一定程度上拓展了易语言的应用范围。

 

斩月计划大名鼎鼎,我早就听说过了,但一直没有深入了解,主要是个人原因:因为我始终认为,易语言程序依赖易语言核心库天经地义,通过分离核心库来减小EXE/DLL文件尺寸,并以“损失大批唾手可得的实用功能”和“增加程序编写复杂性”为代价,似乎得不偿失。我个人编写易语言的程序,并不介意它的文件尺寸,也不介意多使用几个支持库,我介意的是,能不能更快更好的完成这个程序,——其实这才应该是易语言存在的本质啊,千方百计的要少用一个支持库,千方百计的用API取代支持库,不是在为自己增加负担么?很多易友对支持库有偏见,但是我没有。

 

但是到了我开发“易写易库(EXEK)”时,我突然发现,在某些特殊情况下,“斩月”真的是非常有用非常实用。以易写易库为例,如果不支持斩月,用它开发出的易语言支持库就不能被易语言3.0使用(用“易写易库(EXEK)”为易语言3.0开发支持库?)。

 

要让你的易语言程序支持斩月,你只能选择:1、使用Windows系统API;2、使用内嵌汇编(置入代码);3、使用核心库中有限的几个命令;4、使用支持斩月(即满足前三个条件)的易语言模块。即,大部分情况下,你不能使用任何易语言支持库(包括核心库)中的功能,当然有少数例外(如特殊功能支持库中的“置入代码”,另注,该命令已在易4.12中移入核心库)。支持斩月,往往意味着你需要放弃许多现成的实用的功能丰富的支持库,无疑会增加程序的开发难度;有得就有失,选择权在使用者。

 

其实,斩月计划也是依附于易语言编译器的辅助工具,它无法脱离易语言编译器而独立存在(除非把它自身改造成另一个易语言编译器,而这在短期内是不现实的),它所支持的核心库中的命令,多数都是因为这些命令已经事先被易编译器将实现代码编译进EXE/DLL中了,——当然,不被易编译器支持而被斩月支持的命令也有,如“指针到文本”“指针到字节集”和位操作相关的大部分命令,这是斩月内部特殊处理的结果。

 

我还是坚持我的观点:在特定情况下,斩月非常有实用价值。

 

“易写易库(EXEK)”正式支持斩月,这就是我(liigo)以实际行动对“斩月计划”的支持。

 

 

另,我在实践中发现超级大BUG的易模块“ZCL_核库函数1.01”(更新日期2007年6月27日,模块内部注明版本为1.1)中没有“文本到数值”功能,因此贴出以下易语言源代码,也算是对斩月的一点支持:

 

str2double

 

完整易语言源代码文本如下(可直接复制粘贴到易语言IDE):

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
黑月是类似于月,目的是将易语言程序小型化,脱离支持库运行的工具。但实现原理和方法又与月不同,不需要类似的月壳,而是分析并转化易程序为对象文件obj,再用链接器LINK.EXE重新编译链接。这样生成的黑月程序,具有更规范更优化的PE程序文件结构,并且带来更多的功能扩展(比如使用RC资源脚本生成PE标准资源),以及带来下好处:   1、具有正常的PE可执行文件结构,经过反编译后生成的易程序代码清晰可见,完全呈现。汇编代码可分析可用专用软件跟踪调试,不会再产生误报。   2、在脱离核心支持库的同时,又不废除原有核心库命令,而是转向调用功能类似的黑月核心库。就是说,黑月可以使用大部分的原核心库命令(非窗口操作),并且黑月核心库为本人模仿原核心库功能,再重新编写的静态库。由于黑月先天优势,可以静态库抽取代码片段合成编译,就是用到的命令函数才提取相应部分代码。不用到命令不合成到目标程序。这样的好处是既保持原有功能不变,又不使程序文件大小增加,附带冗余代码。   易友们一直梦想的静态库抽取合成编译,今天在黑月已经实现了!   (黑月支持的核心库命令看随后的附表)   4、黑月可以使用PE标准资源,用RC脚本编译生成。比如使用资源对话框模板创建窗口,并配合可视化的黑月RC脚本编辑器,比月又多一种更方便的界面设计功能,而且与汇编和C语言的RC脚本兼容通用,使黑月程序更接近于常规程序。   5、黑月的DLL可以使用类似其它语言DLLMAIN入口函数(黑月为“Dll入口函数”),可以通过DLL的模块句柄访问DLL的PE资源、注入进程、多线程应用等等优点。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值