递归火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库
查看: 2531|回复: 10
打印 上一主题 下一主题

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

[复制链接]

69

主题

990

帖子

4472

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
4472
跳转到指定楼层
楼主
发表于 2024-7-3 19:20:21 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 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)
未翻译的源类库文件: FTXUI.zip (374.13 KB, 下载次数: 2)
翻译的类库文件与火山的项目: 函端.zip (321.49 KB, 下载次数: 9)

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

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


回复

使用道具 举报

69

主题

990

帖子

4472

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
4472
沙发
 楼主| 发表于 2024-7-3 19:32:05 | 只看该作者
本帖最后由 hcwanz 于 2024-7-4 19:18 编辑

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

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

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

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

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


回复

使用道具 举报

145

主题

1240

帖子

5753

积分

贵宾

Rank: 9Rank: 9Rank: 9

积分
5753
QQ
板凳
发表于 2024-7-4 10:34:45 | 只看该作者
支持
火山视窗封装视频教程
回复

使用道具 举报

25

主题

211

帖子

1719

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
1719
地板
发表于 2024-7-4 10:57:41 | 只看该作者
这个可以跑到单片机上吗
回复

使用道具 举报

69

主题

990

帖子

4472

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
4472
5#
 楼主| 发表于 2024-7-4 14:15:30 | 只看该作者
cy328252495 发表于 2024-7-4 10:57
这个可以跑到单片机上吗

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

使用道具 举报

36

主题

444

帖子

1550

积分

金牌会员

Rank: 6Rank: 6

积分
1550
QQ
6#
发表于 2024-7-4 19:09:23 | 只看该作者
辛苦了,
Q 75520266
回复

使用道具 举报

0

主题

34

帖子

509

积分

高级会员

Rank: 4

积分
509
7#
发表于 2024-7-5 10:05:38 | 只看该作者
可以可以,很牛逼:噜阿噜
回复

使用道具 举报

69

主题

990

帖子

4472

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
4472
8#
 楼主| 发表于 2024-7-13 20:17:37 | 只看该作者
本帖最后由 hcwanz 于 2024-7-13 20:25 编辑

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

使用道具 举报

19

主题

84

帖子

409

积分

中级会员

Rank: 3Rank: 3

积分
409
9#
发表于 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”: 函数声明必须可用,因为所有参数都不依赖于模板参数
回复

使用道具 举报

15

主题

299

帖子

2025

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
2025
10#
发表于 2024-10-17 15:23:50 | 只看该作者
期待啊!~~~~~
回复

使用道具 举报

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

本版积分规则

QQ|Archiver|手机版|小黑屋|递归火山软件开发平台 ( 鄂ICP备18029190号 )

GMT+8, 2024-11-25 13:22 , Processed in 0.106802 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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