hcwanz 发表于 2024-7-3 19:20:21

[7.13][完善翻译][终端界面库]留档

本帖最后由 hcwanz 于 2024-7-14 10:09 编辑

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

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

所以先把这个项目发出来留个档, 等我完全了再补上.
---------------------------------先放一些效果图:





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

--------------------------------------下为翻译的代码, 如果觉得难懂, 可以下载原类库的文件来研究

---------------------------------------------原代码


hcwanz 发表于 2024-7-3 19:32:05

本帖最后由 hcwanz 于 2024-7-4 19:18 编辑

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

它表示重载管道运算符.
比如有两个类:类1、类2
在未定义为管道运算符时,他们的交互大概如下:
`````````````
其他方法( 类1.方法(类2));
````````````
而重载管道运算符后
```````````````
其他方法(类2|类1);
```````````````
适用场景是方法套方法的时候, 用于减轻代码复杂度.
```````````````
边框(粗体(闪烁(文本(L"这是一段文本"))));
文本(L"这是一段文本")|闪烁|粗体|边框;
```````````````
如上就是最佳用处
更为复杂的需要数个参数的场景, 就是纯添堵了


沉默流星 发表于 2024-7-4 10:34:45

支持

cy328252495 发表于 2024-7-4 10:57:41

这个可以跑到单片机上吗

hcwanz 发表于 2024-7-4 14:15:30

cy328252495 发表于 2024-7-4 10:57
这个可以跑到单片机上吗

这个是基于linux的终端的, 只要能运行终端, 理论上就能跑

承易 发表于 2024-7-4 19:09:23

辛苦了,

南湾 发表于 2024-7-5 10:05:38

可以可以,很牛逼:噜阿噜

hcwanz 发表于 2024-7-13 20:17:37

本帖最后由 hcwanz 于 2024-7-13 20:25 编辑

此版本对接口实现了完全的翻译,仅余一些实现代码中的变量没有翻译。
在使用其画板组件时,因为编码问题出现乱码。
百般摸索之下倒是找到了理论上的办法,但依然没法完全解决,
于是决定从底层直接全部修改编码类型,不确定要花几日,能不能成功,所以暂且发一个版本留档。

86339218 发表于 2024-10-17 14:32:47

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:50

:):):):)期待啊!~~~~~
页: [1] 2
查看完整版本: [7.13][完善翻译][终端界面库]留档