文件名称:【2014.11.15】易语言编写支持库模版,动、静态版-易语言
文件大小:2.04MB
文件格式:ZIP
更新时间:2024-07-02 16:21:24
高级教程源码
!!!当前版本: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
【文件预览】:
LIB.EXE
LINK.EXE
fne2lib.exe
RESYM.EXE
IMPDEF.EXE
test_static.e
fne2lib.e
test.e
支持库测试.e
MSPDB60.DLL
DLL2LIB.exe