网站首页 > 易语言相关 > 易语言例程 正文
Only Chinese document is available.
EplOnCpp (EOC for short)
介绍
基于Cpp构建的Epl语言编译环境
用于支持x64程序编写及实现特殊功能
版本
版本编号:Build 20190406
版本类型:概念预览(Concept Preview)
缺乏较多库命令支持,几乎不可能用于实际工程
请勿将其使用在正式工程中,在未来的版本中,其行为可能与预览版有很大不同
开源许可证
项目 | 许可证 |
EplOnCppCore | The MIT License |
EplOnCppGUI | The MIT License |
EocSystemEnv | The MIT License |
EocLib_krnln | The MIT License |
EocLib_EocHelper | The MIT License |
已知限制
不支持窗口功能
不支持“资源”
不支持编写DLL
不支持Linux程序编写
不支持置入代码(无法解决)
通用型功能相当不完善,建议避免使用(库、API声明除外,可放心使用)
用户使用指南
基本条件
正确安装了.NET 4.0(或兼容版本) Windows 10自带
任何支持C++ 17标准的编译器 目前仅在VS2017下进行了测试,在clang等编译器下使用时极可能遇到问题
明确不支持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中打开文件夹”来浏览工程
XP支持
EOC不对XP系统提供主流支持,且任何对XP的有限支持都可能在未来的版本中移除
但由于VS2017仍然保留有限XP支持,您可以在cmake中使用参数-T v141_xp编译
为了更好的兼容性,您可以还需要使用VC-LTL等项目
库编写指南
请参照核心库的编写,正确编写C++代码、cmake配置文件config.cmake和库信息文件info.json
规范
命名
所有库命令应该放在命名空间e::lib::{LibName}下,其中{LibName}为库的英文名
自定义类型
所有自定义结构应该为智能指针类型e::system::struct_ptr<Raw>的别名,其中Raw为原始类型
所有自定义类应该为智能指针类型e::system::object_ptr<Raw>的别名,其中Raw为原始类型,应继承自e::system::basic_object并正确实现clone函数
info.json
库信息文件 CMakeName描述库在CMake配置文件中的名称,应与config.cmake中信息相匹配
Cmd/Type/Constant/Enum描述库提供的命令/类型/常量/枚举,其类型为Object【Key为中文名,Value为具体信息】
config.cmake
cmake配置文件
其应当正确配置库项目并定义{CMakeName}_FOUND/{CMakeName}_INCLUDE_DIRS/{CMakeName}_LIBRARIES,其中{CMakeName}应与info.json中信息相匹配
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中将类型声明为*而非e::system::any)
任何类型声明为*的函数应当能够接受e::system::any,以便在和 通用型变量 和 其他命令的通用型返回值 组合使用时,能够正确工作:如到文本 (取字节集数据 ({ 1, 2, 3, 4, 5, 6, 7, 8 }, #长整数型, ))
参数的ByRef选项,仅用于非常量引用,对常量引用(const&)应为false以便获取更高的运行速度
- 上一篇: 易语言QQ好友提取源码 支持分组提取 高效导出
- 下一篇: Apache服务监测易语言源码
猜你喜欢
- 2025-01-04 hook抓取电脑和安卓交互的TCP请求,Tcp-adb源码分享
- 2025-01-03 易语言取文件真实创建时间
- 2025-01-03 易语言实现彩色会闪会抖动的字,而且还在标题栏
- 2024-06-28 通讯录VCF文件生成源码
- 2024-03-16 2024无模块静默取已登录QQ
- 2024-03-16 批量转换PPT为PDF源码
- 2024-03-15 串口相关, 虚拟串口,枚举串口,PCOMM使用
- 2024-03-14 易语言取Unix时间戳源码
- 2024-03-13 易语言源码 安卓 ADB调试桥 真机调试
- 2024-03-11 易语言控件自动缩放源码
你 发表评论:
欢迎- 百度站内搜索
- 关注微信公众号
- 网站分类
-
- 网站公告
- 电子书书籍
- 程序员工具箱
- 编程工具
- 易语言相关
- 网络相关源码
- 图形图像源码
- 系统工具源码
- 易语言模块源码
- 易语言支持库
- 数据库类源码
- 易语言例程
- 易语言游戏开发
- 易语言模块
- 多媒体类源码
- 易语言资源网
- 易语言视频教程
- JS分析教程
- 易语言图文教程
- 易语言常见问题及笔记
- 工具源码
- 易语言版本
- 网络编程
- javascript
- PHP编程
- html
- 正则表达式
- 面试题
- nodejs
- 其它综合
- 脚本专栏
- python
- 按键精灵相关
- 按键精灵图文教程
- 按键精灵视频教程
- 按键精灵Q语言
- 按键精灵安卓版
- golang
- 游戏安全
- 火山相关
- 火山安卓软件
- 火山常见问题及笔记
- 火山安卓源码
- 火山视频教程
- 火山PC版本下载
- 火山PC视窗例程
- 互联网那些事
- 引流推广
- 项目揭秘
- 网络营销
- 营销软件
- QQ营销软件
- 娱乐软件
- 机器人插件
- 培训教程
- 技术教程
- 活动线报
- 数据库
- Redis
- Access
- MongoDB
- Mysql
- 问答
- 其它
- 易语言
- 需求
- 在线教程
- 多线程培训班
- 觅风易语言教程
- 模拟系列教程
- 集中营易语言教程
- 历史数据
- 随机tag
本文暂时没有评论,来添加一个吧(●'◡'●)