易语言资源网 - 做最全的易语言资源下载社区
【精易招聘】UniApp开发工程师 精易论坛授权登录

e2cpp,易转C++工具链   [复制链接]

    2022-05-25 09:30:45
    高级教程源码
    易语言资源网
    463 次浏览
    来源链接

e2txt+反编译引擎+翻译的工具链

本来是打算词法分析直接替换的,后来发现要处理字符串和可空参数,还要写语法解析树,json还需要模块,只能放弃,改用文本替换+特殊情况处理。

生成的CPP稍微修改后可以编译(仅通过编译),不能全自动化自举(工具把工具源码转C++后我又稍微手动调整了一些地方),C++编译后的功能还没有测试。为了通过MSVC编译器编译易源码需要进行符合规则的调整,例如变量名不能与数据类型重名,亦不能与函数重名。需要调用指针的位置请在易源码里手动初始化赋值。自定义数据类型一定要按照声明顺序添加。尽量不要使用置入代码(不然只能X86了),调用DLL函数名不要和DLL的函数名重名,可以在前面加"e_",全局变量初始化等等等等。目前仅支持核心库的大部分命令并且无模块的控制台程序。待解决的点,能同时通过X64X86unicode和多字符编译的的核心库所有命令(除EDB)。可空参数补全。类文件的解析。系统API自动识别后从windows头文件的接口调用而非dll。Cmake文件生成并自动化编译链接,IDE,win窗口程序等等等等。目前当个玩具看看就行。

翻译工具转换后的源码

易语言源码

有些晚了也不想多写,完善完善再说吧。

源码有些大

70多兆是因为我把x86ansi的核心库放进去了,为什么核心库这么大,因为为了编译后体积更小我把每个函数单独写了一个cpp,目前一个lib里有一百多个obj,不想用可以用自己写的代替就行了。

5.20 添加类处理,也稍微修改了一下后编译成了一个模块(不是命令行,不是命令行)给搞不懂的水友做个例程。命令行源码仅仅加上了类。资源文件太大会导致文件翻译很慢,所以还是不要内存调用太大的文件,放到文件夹里会好点。子程序分析需要重新写,不然字节集类下标引用还需要手动调整。反正也开源了,大家自己改吧.

类处理:

函数测试:




蓝奏云网盘

[错误报告]   上一篇:网卡操作 高级路由跃点 设置/读取/修改...     下一篇:右键一键上传图片到图床获得地址...