开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 5384|回复: 17
打印 上一主题 下一主题
收起左侧

[支持库源码] EplOnCpp Build 20190712 (Concept Preview)

[复制链接]
跳转到指定楼层
楼主
发表于 2019-7-13 09:24:40 | 只看该作者 回帖奖励 |正序浏览 |阅读模式   广东省揭阳市
分享源码
界面截图: -
是否带模块: -
备注说明: -
Only Chinese document is available.


EplOnCpp (EOC for short)
介绍
基于Cpp构建的Epl语言编译环境
用于支持x64程序编写及实现特殊功能

版本
版本编号:Build 20190712
版本类型:概念预览(Concept Preview)
缺乏较多库命令支持,几乎不可能用于实际工程
请勿将其使用在正式工程中,在未来的版本中,其行为可能与预览版有很大不同

开源许可证

项目许可证说明
EplOnCppCoreView核心组件
EplOnCppGUIView图形界面
EocSystemEnvView系统库及基本环境
EocLib_krnlnView核心库实现
EocLib_EocHelperViewHelper库实现


已知限制
  • 不支持窗口功能
  • 不支持“资源”
  • 不支持编写DLL
  • 不支持Linux程序编写
  • 不支持置入代码(无法解决)
  • 通用型功能相当不完善,建议避免使用(库、API声明除外,可放心使用)


用户使用指南
基本条件

  • 正确安装了.NET 4.6.1(或兼容版本)
    Windows 10自带
  • 任何支持C++ 17标准的编译器
    主线测试版本:VS2019
    明确不支持VS2015/VS2012/VS2010/VC6等任何缺少C++ 17支持的编译器
  • CMake编译系统
    建议在安装VS时勾选CMake支持以便快速完成安装并获得VS IDE支持


安装配置
配置EOC系统环境
  • 解压env.7z
  • 设置环境变量“EOC_HOME”为“eoc”文件夹路径
  • 重启以确保环境变量生效
  • 解压GUI.7z到任意目录


安装EocHelper库
安装EocHelper库可以使用一些EOC附加功能(通常用于跨平台)
  • 解压EocHelper.fne.build,将fne文件拷贝到e/lib目录
  • 重启易语言,勾选EocHelper库启用


使用
生成工程文件
  • 编写*.e文件
  • 在编译菜单中选择 编译为Windows模块文件
  • 在EOC主程序(GUI.7z/QIQI.EplOnCpp.GUI.exe)中输入模块文件路径
  • 在EOC主程序中选择正确的工程类型
  • 输入输出目录路径
  • 点击按钮生成


编译
生成目录中将包含完整的CMake工程信息,请您使用CMake命令行自行编译
新版本的VS也包含了良好的CMake支持(需要安装),您可以在配置成功后,通过“在VS中打开文件夹”来浏览工程
VSCode在安装扩展(ms-vscode.cpptools&twxs.cmake&vector-of-bool.cmake-tools)后也可以极好的支持CMake,可以使用

XP支持
EOC不对XP系统提供主流支持,且任何对XP的有限支持都可能在未来的版本中移除
但由于VS2017仍然保留有限XP支持,您可以在cmake中使用参数-T v141_xp编译
为了更好的兼容性,您可以还需要使用VC-LTL等项目

库编写指南
请参照核心库的编写,正确编写C++代码、cmake配置文件config.cmake和库信息文件info.json(或info.yml)

规范
命名
所有库命令应该放在命名空间e::lib::{LibName}下,其中{LibName}为库的英文名

自定义类型
所有自定义结构应该为智能指针类型e::system::struct_ptr<Raw>的别名,其中Raw为原始类型
所有自定义类应该为智能指针类型e::system::object_ptr<Raw>的别名,其中Raw为原始类型,应继承自e::system::basic_object并正确实现clone函数

info.json/info.yml
库信息文件
CMakeName描述库在CMake配置文件中的名称,应与config.cmake中信息相匹配
Cmd/Type/Constant/Enum描述库提供的命令/类型/常量/枚举,其类型为Object【Key为中文名,Value为具体信息】

config.cmake
cmake配置文件
其应当正确配置库项目并定义{CMakeName}_FOUND/{CMakeName}_INCLUDE_DIRS/{CMakeName}_LIBRARIES,其中{CMakeName}应与info.json/info.yml中信息相匹配

SuperTemplate
用于实现某些特殊支持库,接口极不稳定,如非必要请避免使用

类型

中文名类型名
算术类型-
字节型uint8_t
短整数型int16_t
整数型int32_t
长整数型int64_t
小数型float
双精度小数型double
平台整数intptr_t
非算术基本类型-
文本型e::system::string
字节集e::system::bin
日期时间型e::system::datetime
子程序指针e::system::methodptr
通用型e::system::any
高级类型-
数组(单维或多维)e::system::array<*>
自定义类型{CppName}


注意事项
  • 对于末尾的可空参数,其在C++层面应当包含默认值(通常为std::nullopt)
  • 对于通用型参数,在库层面建议结合模板以便加快效率(此时在info.json/info.yml中将类型声明为*而非e::system::any)
  • 任何类型声明为*的函数应当能够接受e::system::any,以便在和 通用型变量 和 其他命令的通用型返回值 组合使用时,能够正确工作:如到文本 (取字节集数据 ({ 1, 2, 3, 4, 5, 6, 7, 8 }, #长整数型, ))
  • 参数的ByRef选项,仅用于非常量引用,对常量引用(const&)应为false以便获取更高的运行速度




原作者:1354092549

EplOnCpp Build 20190712 (Concept Preview).7z

769.88 KB, 下载次数: 42, 下载积分: 精币 -2 枚

点评

老哥,希望你坚持下去,易语言明天会更好!!   湖北省荆门市  发表于 2019-7-19 11:48
唯一官方QQ交流群:605310933   江苏省无锡市  发表于 2019-7-13 16:57
啥玩意儿?????????????????   浙江省温州市  发表于 2019-7-13 09:35

评分

参与人数 4好评 +2 精币 +7 收起 理由
LovelyA72 + 2 感谢分享,很给力!~
李泽勇2 + 1 + 2 很好很强悍,坚持下去哦~
极地萤火 + 1 唯一官方QQ交流群:605310933
Aurora + 1 + 2 感谢分享,很给力!~

查看全部评分


14
发表于 2022-12-20 17:03:53 | 只看该作者   陕西省西安市
感谢分享
回复 支持 反对

使用道具 举报

结帖率:50% (1/2)
13
发表于 2019-8-27 04:45:12 | 只看该作者   美国
这是否意味着我们以后就有开源的命令行epl编译器了?加油哦!
回复 支持 反对

使用道具 举报

结帖率:75% (3/4)
12
发表于 2019-7-21 20:43:19 | 只看该作者   陕西省西安市
太牛逼了。希望作者坚持
回复 支持 反对

使用道具 举报

结帖率:95% (223/235)
11
发表于 2019-7-21 16:27:51 | 只看该作者   山东省烟台市
老哥,希望你坚持下去,易语言明天会更好!!
回复 支持 反对

使用道具 举报

10
发表于 2019-7-16 14:15:16 | 只看该作者   河北省石家庄市
虽然不知道是什么,但是好像很厉害的样子...
回复 支持 反对

使用道具 举报

结帖率:65% (35/54)
9
发表于 2019-7-16 03:53:46 | 只看该作者   山东省济宁市
支持开源~! 感谢分享
回复 支持 反对

使用道具 举报

结帖率:93% (14/15)

签到天数: 1 天

8
发表于 2019-7-13 22:59:19 | 只看该作者   菲律宾
看不懂啥东西,只记得到处都是不建议使用
回复 支持 反对

使用道具 举报

结帖率:67% (4/6)

签到天数: 3 天

7
发表于 2019-7-13 21:57:54 | 只看该作者   北京市北京市
看不懂这是干嘛用的
回复 支持 反对

使用道具 举报

结帖率:93% (27/29)
6
发表于 2019-7-13 19:47:55 | 只看该作者   江西省赣州市
假装看懂了...............
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报QQ: 793400750,邮箱:[email protected]
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表