递归火山软件开发平台

标题: 对象数组 自定义排序 [打印本页]

作者: 小蜗牛    时间: 5 小时前
标题: 对象数组 自定义排序
本帖最后由 小蜗牛 于 2026-1-15 09:04 编辑

由于火山没有把对象数组的获取指针函数公开,所以需要修改火山的头文件.
文件位于:
           \plugins\vprj_win\classlib\sys\base\libs\win_base\include\vol_array.h
           在 648 行后面添加:     inline_ CVolObject** GetData() { return m_arypObjects.GetData(); }
缺点是每次更新都要修改..
优点是排序要方便一点..如果要文本排序 就是   比较结果 = 文本比较 (成员A.姓名,成员B.姓名) < 0

火山要好用,就要深度封装,而要封装的时候,很多因为火山的各种原因.实现不了..
从而导致有些功能用C++比火山写起来还更方便N倍..

(, 下载次数: 0)
[attach]36282[/attach]

                    

                        

                           

                           
正在渲染火山代码...

                        

                    

                    复制代码
               




作者: 小小小小鸟    时间: 4 小时前
看出来了,为了绕过火山限制,整了不少活
作者: 小蜗牛    时间: 4 小时前
小小小小鸟 发表于 2026-1-15 09:33
看出来了,为了绕过火山限制,整了不少活

我没理解的一点就是..C++那么优秀的标准库..火山为啥要自己重复造轮子,自己实现一套..比如文本型.数组..等等...从而导致很多C++生态不能直接用.而且性能也没有标准库的高.虽然说可以用别名类.
作者: 龙纹    时间: 4 小时前
这种场景我觉得使用标准数组类+三方库比较好,在火山里也能写接近原生C++的代码。我之前发的这个帖子,能在火山C++17标准下使用C++20的投影算法:火山标准数组扩展类, 一行代码排序结构体数组
作者: 小小小小鸟    时间: 4 小时前
小蜗牛 发表于 2026-1-15 09:42
我没理解的一点就是..C++那么优秀的标准库..火山为啥要自己重复造轮子,自己实现一套..比如文本型.数组.. ...

我是这么猜的,火山有自己的基类,有自己的内存池,在基类内部实现了内存分配等的重载,从而在跨dll或部件时传递对象不会引发内存错误,但如果在这个基础上用标准库就会很麻烦了,当初设计就是这么设计好了,后期再改就很难,基本要重构,所以在大改和打补丁之间选择了打补丁,新增本地类,之前的代码能用就用着
作者: 小蜗牛    时间: 4 小时前
龙纹 发表于 2026-1-15 09:44
这种场景我觉得使用标准数组类+三方库比较好,在火山里也能写接近原生C++的代码。我之前发的这个帖子,能在 ...

:噜阿噜 确实很优秀..唯一缺点就是要写输出名..如果能捕获到输出名就好很多.
作者: 小蜗牛    时间: 4 小时前
小小小小鸟 发表于 2026-1-15 09:52
我是这么猜的,火山有自己的基类,有自己的内存池,在基类内部实现了内存分配等的重载,从而在跨dll或部 ...

嗯,这就造成,很多资源不能直接使用,需要自己写一套转换.
估计是为了实现定义事件/标记值..内部需要记录...估计对象类 就是干这个事情的...

作者: 小小小小鸟    时间: 3 小时前
小蜗牛 发表于 2026-1-15 10:02
嗯,这就造成,很多资源不能直接使用,需要自己写一套转换.
估计是为了实现定义事件/标记值..内部需要记录.. ...

是啊,除非有大佬重新撸一套基础库,而且还得兼容火山语法,撸出来还得配套封库,太难了太难了。。
作者: yb1984724    时间: 3 小时前
小蜗牛 发表于 2026-1-15 09:42
我没理解的一点就是..C++那么优秀的标准库..火山为啥要自己重复造轮子,自己实现一套..比如文本型.数组.. ...

:噜阿噜谁叫老吴最开始开发的是安卓的JAVA呢
作者: 龙纹    时间: 1 小时前
小蜗牛 发表于 2026-1-15 09:55
:噜阿噜 确实很优秀..唯一缺点就是要写输出名..如果能捕获到输出名就好很多. ...

火山的语法不能直接写 类::成员名,如果能写就简单多了




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