精易论坛

标题: 【开源】【2015.07.09】易语言静态库代码生成工具,静态库丢失解决方案 [打印本页]

作者: SalHe    时间: 2015-7-9 17:57
标题: 【开源】【2015.07.09】易语言静态库代码生成工具,静态库丢失解决方案
本帖最后由 宇智波·佐助 于 2015-7-17 13:56 编辑

使用引擎:Ex_DirectUI
软件名称:SalHe EStatic Lib ECode Maker

软件截图:
第一版:

第二版(目前最新版 2015年7月9日 22:19:56):


主要先说说软件是拿来干嘛的:
相信很多易友有找不到静态库的经历
即使该支持库确实发布了静态库版本
但是还是无法找到,这时该怎么办呢?
于是本人根据自己写支持库的经验想到一个解决方案
那就是自己手动将支持库包装一次,自己再编译成静态库
心动不如行动,然后这个工具就这么诞生了
你可以用ta生成任何支持库的静态库

PS:这种情况有易友提出,所以也解决了
       解决时间:约2015年7月9日 22:20
(但排除一种,那就是支持库本身并没有提供导出函数名)
(这种情况呢我没遇到,所以暂时就不写,要写也花不了好一会儿)
(如果有人遇到了,不妨留贴或者Q我,我会帮各位再次解决)

如果支持库本身 不支持
静态编译/不返回导出函数名给易语言 怎么办:
生成代码存放文件名:xxx_reload_ECODE.txt
将工具的 重新包装动态库 勾上
这样工具会自动生成重新包装动态库的代码
然后新建一个动态链接库(DLL)源码用生成的代码将其覆盖
最后将这个源码编译,文件名与原支持库文件名一致
然后在易语言 lib 目录里将ta覆盖就好了
生成的静态库代码编译方式参考下文

软件生成静态库编译方式:
生成代码存放文件名:xxx_static_ECODE.txt
以我的易语言编写支持库的模版中的test支持库为例
首先拥有一个支持库的动态库(必须滴~),如图所示:


OK,比如说我们要给ta生成一个静态库代码
那么我们先打开我所提供的这个工具
然后将test.fne拖到工具的标签内
随即工具自动为该支持库生成对应静态库的代码
并且将这份代码以文本文档形式保存到支持库所在目录
生成结果请参看软件给出的提示
整个流程如下图(截图内工具为第一版,目前最新版是有 重新包装动态库 的):


然后我们打开易语言新建一个动态链接库(DLL)
将工具所生成的代码覆盖到新建的DLL源码里面去
如图所示
(截图中的源码位于 example\test_static.lib)


(这里并不是死的,大家可以看生成代码的备注)接着再新建图片资源
新建一个名为 LIB_DATA 的资源,将支持库导入到这个资源里
再新建一个名为 _SALHE_ESTATIC_LIB_ECODE_MAKER_TAG 的资源,将本工具目录下 _SALHE_ESTATIC_LIB_ECODE_MAKER_TAG 文件导入到这个资源里
如图所示:


这时候我们的静态库就算搞完了,
接着我们就可以将ta编译


现在就到了静态库处理的最后一步了
我们打开 SalHe ELib Tools
将编译后的文件拖入ta里面进行转换
转换后我们在编译后文件的目录下就可以看到对应的静态库
这个静态库就可以放到易语言的 static_lib 目录下进行静态编译了
过程如图所示,分两张图:
第一张、演示转换:

第二张、测试静态编译:


PS:
转换的时候需要注意在转换工具内选择的置入标识
应与静态库代码里的
_SALHE_ESTATIC_LIB_ECODE_MAKER_TAG 一样
你也可以使用转换工具生成这个代码
然后静态库里的代码要和转换器选择的一样
!!!备注完毕。

OK,过程就是这样的,我会把演示中的支持库以及源码等打包
下载地址等详见本楼底部


附件下载列表:
单个附件:
演示中的支持库以及源码: example.zip (468.14 KB, 下载次数: 254)

打包附件(均位于包内 Tools 目录下):
易语言静态库代码生成工具(SalHe EStatic Lib ECode Maker):http://urlxf.qq.com/?iMjiqyA

易语言FNE转换LIB工具(SalHe ELib Tools)                           http://urlxf.qq.com/?iMjiqyA


作者: 马成佐    时间: 2015-7-9 18:12

感谢楼主分享,非常感谢~~
作者: ttong    时间: 2015-7-9 18:14
沙发终结者

作者: 1aa82e    时间: 2015-7-9 18:41
本帖最后由 1aa82e 于 2015-7-9 19:54 编辑

云的代码编辑器支持库
无法生成静态库代码!!!

作者: 神祇    时间: 2015-7-9 18:53
这帖子没回复不科学
作者: Ψ追风轻狂Ψ    时间: 2015-7-9 18:56
感谢楼主分享,非常感谢~~
作者: 海浪SeaWave    时间: 2015-7-9 19:56
这么高级??
作者: SalHe    时间: 2015-7-9 19:59
1aa82e 发表于 2015-7-9 18:41
云的代码编辑器支持库
无法生成静态库代码!!!

我在帖子里已经说明原因了
如果实有需求请留言,会写的

作者: 陨落心炎    时间: 2015-7-9 21:04
谢谢老大啊
作者: zhu25123    时间: 2015-7-9 21:19
支持下!谢谢分享!!!
作者: xslyhk    时间: 2015-7-9 22:34
很强大啊
作者: SalHe    时间: 2015-7-11 22:18
本帖最后由 SalHe 于 2015-7-11 22:22 编辑

【2015.07.11】
下载地址:
http://yunpan.cn/ccwKBzJwSqzhQ  访问密码 0fe3
更新内容:
有易友 accet (官方论坛)
提出再接再励 试了一下. 中文纯洁脚本 云的脚本引擎支持库 云外归鸟的线程池支持库  都导不出 txt
已针对此进行更新,并修复了SalHe ELib Tools已知BUG

作者: 大号上不去    时间: 2015-7-14 21:07
楼出现这个情况→没检测到库信息通知函数(md5_static_ProcessNotifyLib)
作者: 58fly    时间: 2015-8-18 16:37
太厉害了,这个东西无敌了
作者: 汰吥苛缌议嘞    时间: 2016-1-8 17:35
楼主可以帮忙弄云外归鸟的线程池支持库吗?我弄了不能用,
作者: useryg188    时间: 2016-1-31 12:59
不明觉厉....
作者: chencong5025    时间: 2017-1-15 22:01
生成代码 有重复函数   无法静态编译。  估计是库里有重载 如何解决?感觉不能改动函数名称吧
作者: chencong5025    时间: 2017-1-15 22:01
...........
作者: leiwawa001    时间: 2017-9-25 13:54
看看这个东西,好神奇的样子
作者: 雙木絾林    时间: 2018-5-4 10:16
还能用吗?
作者: SalHe    时间: 2021-3-27 01:13
代码及工具:https://github.com/SalHe/elang-lib-sdk
作者: 259504    时间: 2022-10-5 15:06
顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶
作者: luguidong2018    时间: 2024-4-2 12:19
再那卸载,地址无法访问了




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4