黑月编译器插件是易语言不可缺少的插件,黑月编译器让易语言程序脱离核心库运行,从而最大化缩小易语言程序体积的插件,并且使程序具有更优的PE结构,减少易程序被杀软误报的一个插件!
功能介绍
黑月结合易语言编程环境。有效的做到了全程可视化程序开发..并且支持易语言核心库命令。有效的按照实际要求,将需要的代码连接到程序当中。实现了速成的“静态编译” 易语言的编译方式只需要支持库的。在软件运行期间,绝大部分CPU是在支持库领空。
黑月是类似于斩月,目的是将易语言程序小型化,脱离支持库运行的工具。但实现原理和方法又与斩月不同,不需要类似的斩月壳,而是分析并转化易程序为对象文件obj,再用链接器LINK.EXE重新编译链接。这样生成的黑月程序,具有更规范更优化的PE程序文件结构,并且带来更多的功能扩展(比如使用RC资源脚本生成PE标准资源),以及带来下好处:
1、具有正常的PE可执行文件结构,经过反编译后生成的易程序代码清晰可见,完全呈现。汇编代码可分析可用专用软件跟踪调试,不会再产生误报。
2、在脱离核心支持库的同时,又不废除原有核心库命令,而是转向调用功能类似的黑月核心库。就是说,黑月可以使用大部分的原核心库命令(非窗口操作),并且黑月核心库为本人模仿原核心库功能,再重新编写的静态库。由于黑月先天优势,可以静态库抽取代码片段合成编译,就是用到的命令函数才提取相应部分代码。不用到命令不合成到目标程序。这样的好处是既保持原有功能不变,又不使程序文件大小增加,附带冗余代码。
易友们一直梦想的静态库抽取合成编译,今天在黑月已经实现了!
4、黑月可以使用PE标准资源,用RC脚本编译生成。比如使用资源对话框模板创建窗口,并配合可视化的黑月RC脚本编辑器,比斩月又多一种更方便的界面设计功能,而且与汇编和c语言的RC脚本兼容通用,使黑月程序更接近于常规程序。
5、黑月的DLL可以使用类似其它语言DLLMAIN入口函数(黑月为“Dll入口函数”),可以通过DLL的模块句柄访问DLL的PE资源、注入进程、多线程应用等等优点。
6、黑月可以突破易语言自身的限制,实现对__cdecl调用方式函数的支持,并且可以在编译时链接其它由C语言或MASM32汇编语言编写的静态库,这又大大的增强了功能扩展,对众多C语言代码资源的利用,和软件工程的协作开发创造了便利条件。
注意事项
一、必须解压安装到你的易语言安装路径,比如:C:Program Filese
二、在工具->支持库配置 里把黑月编译器插件选上
三、在工具菜单就出现黑月工具了,点击黑月资源编辑器,可以给程序增加资源脚本。
四、用4.13版最好把易的加入版本信息关了,用黑月自己的资源脚本来生成。否则在没资源的情况下,会破坏黑月编译出来程序。运行时出现不是有效WIN32程序的错误提示。
五、若需要黑月链接编译其它支持库,必须安装易语言5.0以上版本。
更新日志
3.6.6版本(2018年12月30日)
1、编译时自动带入静态库所需的RES资源。用于兼容E2EE等支持库。(感谢 神2 提供的技术支持)
2、修复重定向项目超过65535后无法正常运行的问题。(感谢 人 生 提供的技术支持)
3、修复取命令行()不能正确解析命令行的问题。(感谢 小黑 的建议)
4、修复RC资源编译器错误,支持256x256PNG压缩格式图标文件。(感谢 泪闯天涯(邓学彬) 的建议)
5、黑月资源脚本编辑器增加开启UAC请求(请求管理员权限)选项。
6、增加用户自定义链接参数配置。
7、增加用户自定义链接器配置。
第6、7条更新的详情请在更新完毕后查看:易语言目录BlackMoonBlackMoon.ini
8、兼容易语言的LIB命令声明方式,库文件名直接写lib的文件名而不需要改成“静态库”了。
常规stdcall调用约定的函数名格式为: _xxxx@xx (即:_函数名@参数数量*4 如:_strlen@4)
常规cdecl调用约定的函数名格式为: @_xxxx (即:@_函数名 如:@_strlen)
老版本黑月的声明方式也兼容。
9、更正黑月程序向导的DLL模板中的DLL入口函数“不需要公开”的错误描述,改为“必须公开”。
10、修复黑月对象.读文本属性()和对象.文本方法()在部分情况下没有返回值的问题。(感谢 Ali 的反馈)
11、增加黑月对象的方法和属性自动适配判断,兼容易语言写法。(感谢 雷破天 心冷、鱼儿 CSジ蓝ゞ宇 的反馈)
12、修复黑月对象提供了变体型,在返回时变体型会被清空的问题。(感谢 你凌哥i 的反馈)
13、修复快照()命令截图的位置不正确的问题。
14、增加对 打开加密文件() 命令的支持。(感谢 东灿 Lim 分享的算法)
15、提升下面命令的效率:
1) 读入文本
2) 读入一行
3) 读入数据
最新发布 本类热门