“易写易库(EXEK)”项目启动,用易语言开发易语言支持库

67 篇文章 1 订阅
13 篇文章 0 订阅

“易写易库”(EXEK,E Xie E Ku)项目已经启动,用易语言开发易语言支持库。我(liigo)准备用一个月左右的业余时间,完成本项目的一期工程。

 用易语言开发易语言支持库,已经不是一个梦想,早已成为现实。之前已经有不少重量级人物进行过开创性研究,如金眼睛海洋云外归鸟等。而我的工作,也正是这些研究成果之上的拓展。在巨人的肩膀上,我站的很高,看的很远。我觉得应该可以做的更好。

 

“易写易库”的目标是,使易语言开发易语言支持库:

1、更简单:必须比C++写支持库简单,争取比Delphi写支持库还简单。

2、更强大:C++、Delphi写支持库能实现的功能(比如窗口组件),易语言也要做到。

3、更实用:支持库源代码要有很好的可维护性,编译出的fne不依赖任何外部文件。

 

本项目作为易语言支持库的通用开发框架,将以易语言模块的形式发布。

 

这个项目的复杂度是非常高的,好在我已经轻车熟路(用C++开发过N个支持库,用Delphi开发过X个支持库),不存在太大问题。

说实话,我已经有“很久”——以“年”为单位——没有用易语言写过大一点的程序了,最近拾起来,一样顺手。易语言“易学易用实用”的称号还真不是“盖”的。

 

-----------------------------------------------------------------

 

下面回答几个问题:

 

一、为什么要用易语言开发支持库?

能够开发易语言支持库的编程语言应该越多越好,这样可以有更丰富的资源供易语言充分利用,因为每种编程语言都有各自独特的资源优势。易语言用户更习惯用易语言自身开发支持库给自己使用。易语言开发出的支持库比其它语言开发出来的支持库,在文件尺寸上要小很多。

 

二、之前就已经可以用易语言开发支持库了,为什么目前用易语言开发出来的支持库还非常少?

估计有几个原因(或其中之一二):易用性不够,复杂度太高,功能上不足,代码可维护性不好。这也正是“易写易库”项目需要解决的问题。

 

二、为什么要使用支持库而不是易模块?

在使用“易模块”还是“支持库”的问题上,易友们各有自己的选择。一般来说,支持库的优势是:

1、可以定义“通用型”参数和扩展参数(“输出调试文本”就用到这两项功能)

2、可以自定义窗口组件

3、可以使用C++、Delphi、汇编、易语言等多种语言开发,充分利用各种资源

4、支持库是动态链接库,不会增加可执行文件大小

支持库的劣势是:

1、用到支持库的可执行程序,发布时需额外携带支持库文件

2、即使只用到支持库中的一个命令,也需要携带整个支持库

易模块的优势恰恰弥补了支持库的劣势。易模块的优势是:编译时静态连接,且按需连接,编译后发布不需要携带易模块文件。同样,易模块的劣势恰恰也是支持库的优势,易模块不能定义“通用型”参数和扩展参数,不能自定义窗口组件,不能动态链接,不能使用其它编程语言开发。

综合来说,“易语言模块”和“易语言支持库”各有优势和劣势,且能互相弥补,两者都是易语言重要的功能扩展方式。在实践中应该理性选择,不应有所排斥。

本次模版需要使用黑月编译资源 也就是说动态要用黑月编译 不想用黑月的请自行方便 嗯,本人非美化出身,图标丑了谅解下 本模版采用支持第二版 何为第二版?(详细请见 e\sdk\cpp\docs.txt) 支持有两个版本的开发包:2003.5 和 2008.5 两个版本的支持截然不同 连支持入口函数都不一样(即模版中的 GetNewInf) 模版里我也不打算兼容两种支持版本了 毕竟没多大意义 因为各位友几乎都用的是 5.x 版本 当然,也可以认为我懒 更新内容只声明与支持相关的更新 当前版本:2014.11.28 更新内容: [+]更新FNE转LIB工具(V1.0) ★主要为本次模版更新而更新 [!]删除对组件英文名称的修改 ★源:如果【静态模式=#静态模式_WonderWall】, 那么英文名会加上 @4 ★现:不对组件英文名做任何修改 ★ *这些星星后的内容可以看看, 也可以跳过, 我只是做了下更新的解释 ★  本来完成这些模版就可以不用更新了的 ★  谁知发现犯了错?一个人敲代码真麻烦 ★  今天刚好周五, 我又翻了翻支持 ★  然后发现无法静态链接, 看了看易语言的调试信息 ★  才知道易语言静态链接时会自动给窗口单元函数加上 @4 ★  现在删掉了那条代码 历史版本:2014.11.22 更新内容: [+]支持编写组件(详细请见本人写的例子) ★其实这次的更新就是为了组件而更新的 [+]增加程序集:集_组件, 主要用于辅Zhu组件的编写 [+]增加 备选文本_生成_备选数值信息() [+]增加 备选文本_生成_备选文本信息() [+]增加 备选文本_生成_文件名() [+]增加 组件_保存_组件基本信息_创建时() [+]增加 组件_保存组件信息() [+]增加 组件_取结构_hUnit() [+]增加 组件_取结构_hWnd() [+]增加 组件_创建_功能组件() [+]增加 组件_创建_容器组件() [+]增加 组件_窗口过程_透明容器() [+]增加 组件_消息欲处理_功能性窗口() [+]增加 组件_消息欲处理_容器性窗口() [+]增加 组件_取单元信息() [+]增加 组件_消息转发_容器窗口() [+]在 类_写易库 上做了某些更改 [+]增加 添加组件() 方法 [+]增加 添加组件属性() 方法 [+]增加 添加事件() 方法 [+]增加 添加事件参数() 方法 [!]修改 添加参数() -> 添加命令参数() [+]在 类_功能 上做了某些更改 [+]增加 创建CWnd指针() 方法 [+]增加 取hUnit() 方法 [+]增加 产生事件() 方法 [+]增加 组件删除() 方法 [+]在 类_信息储存 上做了某些更改 [+]增加 添加属性() 方法 [+]增加 取属性数量() 方法 [+]增加 拷贝属性() 方法 [+]增加 添加事件() 方法 [+]增加 取事件数量() 方法 [+]增加 拷贝事件() 方法 [+]增加 添加事件参数() 方法 [+]增加 取事件参数数量() 方法 [+]增加 拷贝事件参数() 方法 [+]增加 类_属性 共6个方法 [+]在 集_结构创建 上做了某些更改 [+]增加 new组件信息() 方法 [+]增加 new组件属性信息() 方法 [+]增加 new单元信息() 方法 [+]增加 new组件事件信息() 方法 [+]增加 new组件事件参数信息() 方法 [+]在 集_功能 上做了某些更改 [+]增加 计算指针() 方法 [+]增加 IsXXX() 方法 [+]在 集_模版 上做了某些更改 [+]增加 默认处理_窗口单元接口函数() 方法 [+]增加 组件_保存_xxx() 模版函数 [+]增加 组件_释放_xxx() 模版函数 [+]增加 #结构尺寸_xxx 常量 5 个 [+]增加 #组件属性类型_xxx 常量 21 个 [+]增加 #组件属性属性_xxx 常量 5 个 [x]压缩包内不包含静态转换工具 ★因为静态转换工具没做任何更新 ★所以就不一起带着了 ★如果你真的需要 ★请到论坛找我的帖子 历史版本:2014.11.15 更新内容: [+]支持编写静态(至于步骤请往下看) [+]增加静态转换工具, 在随本模版的压缩包内(源码) [+]增加 类_写易库.设置_静态模式() 方法, 用于指定静态的导出函数名 [-]对 类_写易库.添加命令() 做了改动,主要修改链接名 [-]修复易语言无法读取链接名的BUG ========== 1.支持机制 ========== 支持信息、命令信息等等均使用某个结构储存 源码中的自定义数据类型、类模块、组件即为支持中的定义数据类型 易语言通过 GetNewInf
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值