本帖最后由 项目部006 于 2023-1-10 23:38 编辑
我们把官方的支持库都解析并生成对应的c++代码, 生成一个动态库项目, 和一个静态库项目
生成的项目使用VS2017的平台工具集, 编译静态库后易语言需要2017或以上的链接器才可以静态编译成功
现在正在制作2017专用版的易语言链接器, 如果谁对这方面比较熟的可以联系,一起推进计划实施。
所有代码都是由工具生成, 都经过测试, 68个库都能正确编译
如果不是组件库, 直接替换官方的支持库后打开源码也不会有异常, 只是没有对应的实现代码
如果是组件库, 打开带有组件的源码易语言会因为找不到组件窗口而报错, 因为支持库没有任何实现代码
命令/常量/名字/类型/说明.... 所有信息与原版支持库一模一样
支持库的框架都写好了, 直接编译就是能让易语言加载fne支持库文件
功能库只需要在 xxxx_cmdDef.cpp 这个文件对应的函数里实现代码就可以, xxxx 是这个支持库的文件名
组件库还需要在 xxxx_dtType.cpp 这个文件里实现组件的信息, 比如创建/属性等信息
工具生成的代码没有把组件单独分开写到对应的cpp文件, 大家可以自行把代码分开到不同的cpp文件中
支持库命令名/全局变量名, 以及易语言提供的几个cpp文件都有做了防重名的操作
命令名的格式: 库名_命令名_命令索引_库名
比如: 树型框.取项目数(), 英文名为 GetCount, 这个支持库的文件名是 iext, 这个命令的索引是0
那么拼接起来就是 iext_GetCount_0_iext, 这样能最大限度的防止静态库符号名冲突
如果命令名没有英文名, 那就取中文名的拼音, 比如 iext_QuXiangMuShu_0_iext
命令实现的函数里都会有参数备注
参数名前面加& 表示这个参数是传址, 如果没有这个那就是传值
参数是数组则写数组, 不是数组不写, 数组或者非数组会写 数组/非数组
如果参数是可空, 那会用中括号扩起来
后面会出一个简单的视频教程讲解如何实现支持库命令功能, 并且增加新功能
这个视频不是针对0基础, 需要你对c++有一定的了解, 以及编写易语言支持库有一定的了解
下面这3个压缩包是最初上传的版本
功能库打包下载:
功能库.zip
(2.27 MB, 下载次数: 201)
界面库打包下载:
界面库.zip
(1.92 MB, 下载次数: 98)
功能库+界面库下载:
功能库 + 界面库.zip
(4.33 MB, 下载次数: 447)
更新记录, 有问题还请提出, 这个是统一生成的, 一个有问题, 基本就是所有项目都有同样的问题
- 2023-01-10 23:35 修改静态库项目路径错误的问题
- 2023-01-10 22:33 修改一处命令使用了错误的宏
-
- 2022-12-24
- 功能库更新了一下变长参数命令的备注
- 界面库改成每个组件生成3个cpp文件, 加一个头文件
- 3个cpp文件分别为, 获取属性, 属性被改变, 和组件和易语言交互的处理函数
- 在项目中每个组件单独使用一个文件夹, 根据属性的英文名生成属性常量
- 设置属性和获取属性的回调函数下把各个属性的信息都生成好
- 创建窗口的回调下, 默认会创建一个标签, 让易语言打开源码不会报错
- 如果哪个源码打开后不能编译, 或者编译替换后无法打开原支持库保存的源码, 请联系
- 增加反子类化操作, 不加的话关闭窗口会崩溃
功能库打包下载(每个命令单独cpp文件):
功能库 - 每个命令单独cpp文件 2023-01-10.zip
(3.45 MB, 下载次数: 316)
界面库打包下载(每个命令单独cpp文件):
界面库 - 每个命令单独cpp文件 2023-01-10.zip
(3.31 MB, 下载次数: 183)
支持库模板使用教程 : https://125.confly.eu.org/thread-14758471-1-1.html
命令数量包含正常显示的命令 + 隐藏的命令
数据类型数量包含正常显示的数据类型 + 隐藏的数据类型
常量数量包含普通常量 + 枚举常量 + 隐藏的枚举常量
组件数量包含正常显示的 + 隐藏的组件
如果支持库有其他人写过, 或者官方有开源, 支持库名会指向帖子地址
超文本浏览框支持库 在 易语言根目录\sdk\cpp\samples 下, 这个支持库可自行查找
排名参考帖子: https://125.confly.eu.org/thread-14755682-1-1.html
序号 | 功能库 - 无组件 | 热度排名 | 命令数量 | 数据类型数量 | 常量数量 | 1 | 特殊功能支持库 | 8179 | 16 | 0 | 0 | 2 | 应用接口支持库 | 2959 | 89 | 11 | 78 | 3 | 多线程支持库 | 2887 | 8 | 0 | 0 | 4 | 操作系统界面功能支持库 | 2097 | 9 | 0 | 24 | 5 | 互联网支持库 | 1350 | 25 | 0 | 0 | 6 | 数据操作支持库一 | 1081 | 7 | 0 | 2 | 7 | XP风格界面库 | 845 | 1 | 0 | 4 | 8 | 扩展功能支持库一 | 622 | 14 | 0 | 0 | 9 | 正则表达式支持库 | 502 | 17 | 2 | 0 | 10 | 位图操作支持库 | 386 | 35 | 1 | 0 | 11 | 通用对象支持库 | 349 | 140 | 2 | 0 | 12 | 编码转换支持库 | 325 | 4 | 0 | 116 | 13 | 网络通讯支持库 | 279 | 23 | 4 | 0 | 14 | MySql支持库 | 239 | 53 | 2 | 57 | 15 | 远程服务支持库 | 199 | 29 | 2 | 0 | 16 | 数据结构支持库 | 198 | 97 | 7 | 0 | 17 | 图像格式转换支持库 | 160 | 10 | 0 | 0 | 18 | 网络传送支持库 | 126 | 66 | 5 | 26 | 19 | XML解析支持库 | 126 | 40 | 1 | 0 | 20 | OPenGL支持库 | 113 | 126 | 1 | 166 | 21 | 数值计算支持库 | 105 | 112 | 11 | 0 | 22 | DirectX3D支持库 | 103 | 382 | 69 | 470 | 23 | Sqlite3数据库支持库 | 54 | 230 | 10 | 0 | 24 | 正则表达式支持库(Deelx版) | 49 | 44 | 6 | 6 | 25 | 控制台操作支持库 | 47 | 12 | 2 | 16 | 26 | 文字编码转换支持库 | 35 | 1 | 0 | 7 | 27 | Sqlite数据库支持库 | 33 | 230 | 10 | 0 | 28 | 邮件接收支持库 | 21 | 33 | 3 | 11 | 29 | 进程通讯支持库 | 16 | 26 | 3 | 0 | 30 | 易向导支持库 | 10 | 16 | 3 | 36 | 31 | 局域网操作支持库 | 10 | 12 | 2 | 3 | 32 | 保密通讯支持库 | 9 | 26 | 2 | 0 | 33 | 网络通讯支持库二 | 9 | 20 | 9 | 16 | 34 | Java支持库 | 7 | 66 | 3 | 9 | 35 | 互联网服务支持库 | 7 | 83 | 13 | 114 | 36 | 可执行文件数据转换支持库 | 6 | 1 | 0 | 0 | 37 | BT下载支持库 | 3 | 28 | 8 | 37 | 38 | 端口访问支持库 | 2 | 4 | 0 | 0 |
序号 | 界面库 - 有组件 | 热度排名 | 命令数量 | 数据类型数量 | 常量数量 | 组件数量 | 1 | 扩展界面支持库一 | 6392 | 321 | 8 | 71 | 5 | 2 | 扩展界面支持库二 | 2039 | 118 | 9 | 4 | 7 | 3 | 扩展界面支持库三 | 918 | 111 | 2 | 1 | 2 | 4 | 超文本浏览框支持库 | 819 | 13 | 1 | 10 | 1 | 5 | 拖放支持库 | 693 | 2 | 1 | 0 | 1 | 6 | 高级表格支持库 | 673 | 72 | 2 | 45 | 1 | 7 | 数据库操作支持库 | 471 | 56 | 2 | 64 | 2 | 8 | 扩展界面支持库五 | 385 | 60 | 2 | 0 | 2 | 9 | 超级菜单支持库 | 270 | 3 | 1 | 0 | 1 | 10 | EXCEL2000支持库 | 244 | 36 | 3 | 0 | 3 | 11 | 多媒体支持库 | 215 | 81 | 8 | 7 | 7 | 12 | 压缩解压支持库 | 183 | 5 | 1 | 0 | 1 | 13 | DirectX支持库 | 169 | 284 | 16 | 174 | 1 | 14 | 农历日期支持库 | 148 | 53 | 11 | 59 | 2 | 15 | 脚本语言支持组件 | 134 | 4 | 1 | 1 | 1 | 16 | 扩展界面支持库六 | 134 | 1 | 1 | 0 | 1 | 17 | 数据图表支持库 | 95 | 3 | 3 | 0 | 3 | 18 | 代码编辑框支持库 | 78 | 184 | 2 | 390 | 1 | 19 | VCLBase | 60 | 35 | 20 | 0 | 18 | 20 | 文本语音转换支持库 | 48 | 17 | 3 | 7 | 1 | 21 | 数码设备支持库 | 39 | 17 | 3 | 9 | 2 | 22 | 易LOGO支持库 | 37 | 38 | 1 | 0 | 1 | 23 | 网络拦截支持库 | 35 | 37 | 6 | 4 | 2 | 24 | jedi | 32 | 9 | 6 | 0 | 6 | 25 | WORD2000支持库 | 30 | 33 | 4 | 16 | 3 | 26 | PowerPoint2000支持库 | 19 | 48 | 22 | 134 | 3 | 27 | 办公组件支持库 | 15 | 285 | 16 | 71 | 1 | 28 | 矢量动画框 | 11 | 125 | 9 | 4 | 1 | 29 | 自定义图形支持库 | 6 | 120 | 7 | 127 | 2 | 30 | 电话语音支持库 | 1 | 22 | 6 | 37 | 1 |
|