递归火山软件开发平台

标题: [7.13][完善翻译][终端界面库]留档 [打印本页]

作者: hcwanz    时间: 2024-7-3 19:20
标题: [7.13][完善翻译][终端界面库]留档
本帖最后由 hcwanz 于 2024-7-14 10:09 编辑

[项目分享]如何把c++代码变得和火山代码一样 - 火山平台俱乐部 - 递归火山软件开发平台 - Powered by Discuz! (voldp.com)
延续我之前帖子的思路, 将c++的类库完全汉化, 再封到火山里. (既方便自己, 也方便别的火山用户修改学习)

不过现在只完成了一部分, 因为我今天早上手笨剁伤了食指, 近几日不太适合敲键盘, 打算先研究点别的去.

所以先把这个项目发出来留个档, 等我完全了再补上.
---------------------------------先放一些效果图:
(, 下载次数: 508)
(, 下载次数: 514)
(, 下载次数: 512)


封装的类库是FTXUI, 地址见下
ArthurSonzogni/FTXUI: :computer: C++ Functional Terminal User Interface. :heart: (GITHUB.com)
未翻译的源类库文件: (, 下载次数: 2)
翻译的类库文件与火山的项目: (, 下载次数: 9)

--------------------------------------下为翻译的代码, 如果觉得难懂, 可以下载原类库的文件来研究
(, 下载次数: 523)
---------------------------------------------原代码
(, 下载次数: 508)


作者: hcwanz    时间: 2024-7-3 19:32
本帖最后由 hcwanz 于 2024-7-4 19:18 编辑

作者在里面大量用了c++的特性, 有不懂的可以百度或问我.
我先在这里讲解一个图里的" operators| "特性

它表示重载管道运算符.
比如有两个类:类1、类2
在未定义为管道运算符时,他们的交互大概如下:
`````````````
其他方法( 类1.方法(类2));
````````````

而重载管道运算符后
```````````````
其他方法(类2|类1);
```````````````

适用场景是方法套方法的时候, 用于减轻代码复杂度.
```````````````
边框(粗体(闪烁(文本(L"这是一段文本"))));
文本(L"这是一段文本")|闪烁|粗体|边框;
```````````````

如上就是最佳用处
更为复杂的需要数个参数的场景, 就是纯添堵了



作者: 沉默流星    时间: 2024-7-4 10:34
支持
作者: cy328252495    时间: 2024-7-4 10:57
这个可以跑到单片机上吗
作者: hcwanz    时间: 2024-7-4 14:15
cy328252495 发表于 2024-7-4 10:57
这个可以跑到单片机上吗

这个是基于linux的终端的, 只要能运行终端, 理论上就能跑
作者: 承易    时间: 2024-7-4 19:09
辛苦了,
作者: 南湾    时间: 2024-7-5 10:05
可以可以,很牛逼:噜阿噜
作者: hcwanz    时间: 2024-7-13 20:17
本帖最后由 hcwanz 于 2024-7-13 20:25 编辑

此版本对接口实现了完全的翻译,仅余一些实现代码中的变量没有翻译。
在使用其画板组件时,因为编码问题出现乱码。
百般摸索之下倒是找到了理论上的办法,但依然没法完全解决,
于是决定从底层直接全部修改编码类型,不确定要花几日,能不能成功,所以暂且发一个版本留档。
(, 下载次数: 11)
作者: 86339218    时间: 2024-10-17 14:32
hcwanz 发表于 2024-7-13 20:17
此版本对接口实现了完全的翻译,仅余一些实现代码中的变量没有翻译。
在使用其画板组件时,因为编码问题出 ...


    D:\HuoShan\plugins\vprj_win\classlib\sys\base\libs\win_base\include/vol_array.h(480): error C3861: “m_mem”: 找不到标识符
    D:\HuoShan\plugins\vprj_win\classlib\sys\base\libs\win_base\include/vol_array.h(488): note: 查看对正在编译的 类 模板 实例化“CMPointerArray<POINTER_TYPE>”的引用
    D:\HuoShan\plugins\vprj_win\classlib\sys\base\libs\win_base\include/vol_array.h(486): error C3861: “m_mem”: 找不到标识符
    D:\HuoShan\plugins\vprj_win\classlib\sys\base\libs\win_base\include/vol_array.h(486): error C3861: “GetData”: 找不到标识符
    D:\HuoShan\plugins\vprj_win\classlib\sys\base\libs\win_base\include/vol_array.h(486): note: “GetData”: 函数声明必须可用,因为所有参数都不依赖于模板参数
    D:\HuoShan\plugins\vprj_win\classlib\sys\base\libs\win_base\include/vol_array.h(486): error C3861: “GetUpperBound”: 找不到标识符
    D:\HuoShan\plugins\vprj_win\classlib\sys\base\libs\win_base\include/vol_array.h(486): note: “GetUpperBound”: 函数声明必须可用,因为所有参数都不依赖于模板参数
    D:\HuoShan\plugins\vprj_win\classlib\sys\base\libs\win_base\include/vol_array.h(514): error C3861: “GetCount”: 找不到标识符
    D:\HuoShan\plugins\vprj_win\classlib\sys\base\libs\win_base\include/vol_array.h(514): note: “GetCount”: 函数声明必须可用,因为所有参数都不依赖于模板参数
    D:\HuoShan\plugins\vprj_win\classlib\sys\base\libs\win_base\include/vol_array.h(563): note: 查看对正在编译的 类 模板 实例化“CAutoDeleteObjectArray<POINTER_TYPE>”的引用
    D:\HuoShan\plugins\vprj_win\classlib\sys\base\libs\win_base\include/vol_array.h(515): error C3861: “GetData”: 找不到标识符
    D:\HuoShan\plugins\vprj_win\classlib\sys\base\libs\win_base\include/vol_array.h(515): note: “GetData”: 函数声明必须可用,因为所有参数都不依赖于模板参数
    D:\HuoShan\plugins\vprj_win\classlib\sys\base\libs\win_base\include/vol_array.h(522): error C3861: “RemoveAll”: 找不到标识符
    D:\HuoShan\plugins\vprj_win\classlib\sys\base\libs\win_base\include/vol_array.h(522): note: “RemoveAll”: 函数声明必须可用,因为所有参数都不依赖于模板参数
    D:\HuoShan\plugins\vprj_win\classlib\sys\base\libs\win_base\include/vol_array.h(528): error C3861: “GetAt”: 找不到标识符
    D:\HuoShan\plugins\vprj_win\classlib\sys\base\libs\win_base\include/vol_array.h(529): error C3861: “GetAt”: 找不到标识符
    D:\HuoShan\plugins\vprj_win\classlib\sys\base\libs\win_base\include/vol_array.h(529): note: “GetAt”: 函数声明必须可用,因为所有参数都不依赖于模板参数
    D:\HuoShan\plugins\vprj_win\classlib\sys\base\libs\win_base\include/vol_array.h(530): error C3861: “RemoveAt”: 找不到标识符
    D:\HuoShan\plugins\vprj_win\classlib\sys\base\libs\win_base\include/vol_array.h(530): note: “RemoveAt”: 函数声明必须可用,因为所有参数都不依赖于模板参数
    D:\HuoShan\plugins\vprj_win\classlib\sys\base\libs\win_base\include/vol_array.h(536): error C3861: “GetCount”: 找不到标识符
    D:\HuoShan\plugins\vprj_win\classlib\sys\base\libs\win_base\include/vol_array.h(540): error C3861: “GetData”: 找不到标识符
    D:\HuoShan\plugins\vprj_win\classlib\sys\base\libs\win_base\include/vol_array.h(547): error C3861: “RemoveAt”: 找不到标识符
    D:\HuoShan\plugins\vprj_win\classlib\sys\base\libs\win_base\include/vol_array.h(547): note: “RemoveAt”: 函数声明必须可用,因为所有参数都不依赖于模板参数
    D:\HuoShan\plugins\vprj_win\classlib\sys\base\libs\win_base\include/vol_array.h(589): error C3861: “GetCount”: 找不到标识符
    D:\HuoShan\plugins\vprj_win\classlib\sys\base\libs\win_base\include/vol_array.h(589): note: “GetCount”: 函数声明必须可用,因为所有参数都不依赖于模板参数
    D:\HuoShan\plugins\vprj_win\classlib\sys\base\libs\win_base\include/vol_array.h(616): note: 查看对正在编译的 类 模板 实例化“CAutoReleaseObjectArray<POINTER_TYPE>”的引用
    D:\HuoShan\plugins\vprj_win\classlib\sys\base\libs\win_base\include/vol_array.h(590): error C3861: “GetData”: 找不到标识符
    D:\HuoShan\plugins\vprj_win\classlib\sys\base\libs\win_base\include/vol_array.h(590): note: “GetData”: 函数声明必须可用,因为所有参数都不依赖于模板参数
    D:\HuoShan\plugins\vprj_win\classlib\sys\base\libs\win_base\include/vol_array.h(594): error C3861: “RemoveAll”: 找不到标识符
    D:\HuoShan\plugins\vprj_win\classlib\sys\base\libs\win_base\include/vol_array.h(594): note: “RemoveAll”: 函数声明必须可用,因为所有参数都不依赖于模板参数
    D:\HuoShan\plugins\vprj_win\classlib\sys\base\libs\win_base\include/vol_array.h(600): error C3861: “GetAt”: 找不到标识符
    D:\HuoShan\plugins\vprj_win\classlib\sys\base\libs\win_base\include/vol_array.h(600): note: “GetAt”: 函数声明必须可用,因为所有参数都不依赖于模板参数
    D:\HuoShan\plugins\vprj_win\classlib\sys\base\libs\win_base\include/vol_array.h(601): error C3861: “RemoveAt”: 找不到标识符
    D:\HuoShan\plugins\vprj_win\classlib\sys\base\libs\win_base\include/vol_array.h(601): note: “RemoveAt”: 函数声明必须可用,因为所有参数都不依赖于模板参数
    D:\HuoShan\plugins\vprj_win\classlib\sys\base\libs\win_base\include/vol_unique_array.h(22): error C3861: “RemoveAll”: 找不到标识符
    D:\HuoShan\plugins\vprj_win\classlib\sys\base\libs\win_base\include/vol_unique_array.h(22): note: “RemoveAll”: 函数声明必须可用,因为所有参数都不依赖于模板参数
    D:\HuoShan\plugins\vprj_win\classlib\sys\base\libs\win_base\include/vol_unique_array.h(99): note: 查看对正在编译的 类 模板 实例化“CUniqueArray<T>”的引用
    D:\HuoShan\plugins\vprj_win\classlib\sys\base\libs\win_base\include/vol_unique_array.h(28): error C3861: “RemoveAll”: 找不到标识符
    D:\HuoShan\plugins\vprj_win\classlib\sys\base\libs\win_base\include/vol_unique_array.h(28): note: “RemoveAll”: 函数声明必须可用,因为所有参数都不依赖于模板参数
作者: yb1984724    时间: 2024-10-17 15:23
期待啊!~~~~~
作者: hcwanz    时间: 2024-10-17 16:08
86339218 发表于 2024-10-17 14:32
D:\HuoShan\plugins\vprj_win\classlib\sys\base\libs\win_base\include/vol_array.h(480): error C ...

火山代码和cpp20标准不兼容, 去main.v里指的贴子里下载提换文件




欢迎光临 递归火山软件开发平台 (https://bbs.voldp.com/) Powered by Discuz! X3.4