易语言支持库模版编写教程分享

需积分: 37 2 下载量 108 浏览量 更新于2024-12-20 收藏 60KB ZIP 举报
资源摘要信息:"易语言编写支持库超简单模版分享-易语言" 易语言是一种中文编程语言,它提供了丰富的支持库,以便开发者能够快速开发各种应用程序。本文档分享了易语言编写支持库的简单模版,并对支持库机制、命令调用、易源码结构、模版说明、静态库、支持库选择理由以及易功能函数等知识点进行详细阐述。 1. 易支持库机制 易支持库是易语言的核心,其中包含库信息和命令信息等重要数据,这些数据都存储在特定的结构中。易语言通过GetNewInf()函数获取支持库信息。所有自定义数据类型、类模块、组件等都被视为支持库中的库定义数据类型。因此,易语言开发者在设计支持库时,必须确保其导出GetNewInf()函数。 2. 支持库命令调用 支持库的命令调用方式较为特殊,每个命令都需要三个参数:返回值指针、参数数目、参数信息指针。这要求开发者在定义库数据类型的方法时,第一个参数必须是指向该对象的结构指针。这种机制使得命令调用非常灵活和强大。 3. 简单说下易源码 易语言在保存源码时,并不保存各信息名称(例如命令名、数据类型名),而是保存了它们对应的索引。这使得支持库内的信息在必要时可以进行修改,但必须保持它们的顺序不变。否则,可能导致早期版本源码出现问题。 4. 模版说明 本模版旨在提供清晰的思路和简便的代码结构,使得即使编程新手也能够理解和使用。模版中的参数多数使用通用类型,简化了支持库的编写过程。模版中未包含组件开发的部分,但提供了一些基本的操作演示,涵盖了一些常规功能。如果开发者有意开发组件,可以参考e\sdk\cpp\samples\HtmlView中的代码来实现。 5. 关于静态库 作者目前只完成了动态库的开发,而不推荐静态库,这背后有许多原因。静态库可能会误报,且从动态库转换到静态库可能会遇到一些未知问题。建议使用独立编译,特别是5.3版本之后已经恢复。同时,也可以使用黑月Cool编译器。此外,作者也提供了静态连接名的录入机制。 6. 为何选择支持库 尽管使用模块扩展程序也是可行的,但支持库在安全性和功能上具有优势。支持库可以提供许多模块无法实现的功能,因此选择支持库是相对安全且功能强大的选择。 7. 关于易功能函数 易功能函数是易语言内部提供给支持库使用的函数。主要用法可参考lib2.h头文件(位于e\sdk\cpp\elib\lib.h)。虽然这是一个C++头文件,但只要语文水平足够理解,便不难掌握。作者将一些常用的函数写入了类_易功能类中,供开发者参考。 【最后】 本文档的作者是SalHe,属于Rabbit Group。声明中提到,这只是一个针对初学者的简单模版,作者自认为是编程菜鸟,希望各位大神不要过于苛责。 【信息】 本模版是易支持库模版,作者为SalHe,发布于2014年11月8日。若需要编译,只需将文件名后缀改为fne,并放置在易语言的支持库目录下。一旦支持库发布后,就不要再修改数字签名和支持库文件名了。 文件名称列表包含了以下文件: - 2014年11月8日(文档发布日期) - efne.e(动态库文件,包含扩展功能的易语言模块) - 支持库测试.e(测试支持库功能的易语言项目文件) - test.fne(测试用的支持库文件) 通过这些信息,易语言开发者可以对编写支持库的模版有更深入的了解,并能够利用本模版快速构建自己的易语言支持库。
2021-06-25 上传
本次模版需要使用黑月编译资源 也就是说动态库要用黑月编译 不想用黑月的请自行方便 嗯,本人非美化出身,图标丑了谅解下 本模版采用支持库第二版 何为第二版?(详细请见 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
2021-06-12 上传
!!!当前版本:2014.11.15 !!!更新内容: !!! [+]支持编写静态库(至于步骤请往下看) !!! [+]增加静态库转换工具, 在随本模版的压缩包内(源码) !!! [+]增加 类_写易库.设置_静态库模式() 方法, 用于指定静态库的导出函数名 !!! [-]对 类_写易库.添加命令() 做了改动,主要修改链接名 !!! [-]修复 易语言 无法读取链接名的BUG ========== 1.易支持库机制 ========== !!!易支持库的库信息、命令信息等等均使用某个结构储存 !!!易源码中的自定义数据类型、类模块、组件即为支持库中的库定义数据类型 !!!易语言通过 GetNewInf() 获取支持库信息 !!!所以支持库必须导出这个函数 ========== 2.支持库命令调用 ========== !!!支持库的命令调用方式也比较特殊 !!!每个命令需要三个参数:返回值指针,参数数目,参数信息指针 !!!做个一个库定义数据类型的方法,每个方法的第一个参数为指向该对象的结构指针 ========== 3.简单说下易源码 ========== !!!易保存源码时没有保存各信息名称(比如命令名、数据类型名),而是保存了索引 !!!所以支持库内的各信息有必要时可以修改 !!!但不要改动TA们的顺序,这会导致前期版本的源码出现问题 ========== 4.模版说明 ========== !!!本模版整天来说思路清晰,代码连小白都能理解 !!!模版多数的参数使用通用型,使得模版简便 !!!模版内没有多说废话, 直接把关键的过了一遍, 足够写支持库了 !!!每条命令都演示了支持库的各种操作,能想到的都先写了 !!!暂时没写组件,目前没什么时间了,玩着电脑也冷~ !!!尽量抽时间将组件的开发也模块化 !!!或者各位有心人士可参考 e\sdk\cpp\samples\HtmlView 写一下 ========== 5.关于静态库 ========== !!!静态库的编译本人提供了两种方式,不过两种方式都必须要符合下面的要求 !!!必须导出(易语言里打上公开属性)库信息通知函数, 函数名必须符合 libName_ProcessNotifyLib 的规则 !!!必须导出所有命令实现函数,函数名必须符合 libName_xxx 的规则 !!!必须导出所有窗口单元信息函数,函数名必须符合 libName_GetInterface_控件英文名。2014.11.13这个版本的模版包括前面的暂时木有组件,所以不会有这个函数 !!! !!!第一种方法(#静态库模式_SalHe) !!!将支持库编译 !!!此时还不能做为静态库发布 !!!使用本人写的工具 FNE转LIB 将编译后的支持库转换 !!!转换之后的文件即可作为静态库发布了 !!!工具的使用方法详见工具的自我介绍 !!! !!!第二种方法(#静态库模式_WonderWall) !!!下载一个易语言支持库(插件):WonderWall !!!易语言勾上这个支持库之后并开启静态库编译功能(易语言菜单 -> 工具 -> WonderWall) !!!易语言菜单 -> 编译 -> 静态库编译 !!!此时再拖入工具中加工(进行符号重命名) !!! !!!至于我写的那个工具也放得有源码, 所以要知道原理的话可以看看源码 !!! !!!那么WonderWall编译静态库为什么要另外弄个模式呢?请转到 类_写易库.添加命令() 查看, 看的更清楚 ========== 6.为何选择支持库 ========== !!!其实用模块扩展程序也是足够了 !!!选择做支持库还是安全的 !!!而且支持库有许多模块做不到的功能 ========== 7.关于易功能函数 ========== !!!顾名思义, 就是易内部提供给支持库的函数 !!!主要的用法呢还是得参考 lib2.h(位于 e\sdk\cpp\elib\lib.h) !!!虽说是一个C++头文件,但是语文好点、懂易语言就能理解 !!!小学生的语文水平就差不多啦 !!!我还是把一些常用的写到了 类_易功能 这个类里面 !!!各位同学可以看看、、 ========== 【最后】 ========== !!!直说:本人纯属菜鸟一枚, 各路大神勿喷即可 ==========【信息】========== !!!模版:易支持库模版 !!!作者:SalHe(Rabbit Group) !!!声明:大鸟勿喷即可 !!!日期:2014年11月15日 !!!论坛: !!! 精易论坛 : http://bbs.125.la/uid-186545 !!! 易语言官方论坛:http://bbs.eyuyan.com/u.php?uid=6