V2EX
53 subscribers
18.2K photos
257 files
80.7K links
V2EX新帖和热议
Download Telegram
[华为] soui 全面支持移动端, windows, Linux , macos, ios, android,鸿蒙,一套 C++代码全搞定

0. 一个扎心的现实

你想把桌面软件搬到手机、搬到鸿蒙,于是去看了主流跨平台方案。然后发现:

● Qt:得学 QML / 信号槽那一套,Widget 和 QML 两套心智;
● Flutter:得学 Dart ,UI 层基本用 Dart 重写;
● Electron:包体 100MB+,跑个工具像开浏览器;
● wxWidgets:API 随平台变,"跨平台"很大程度是"换 api 重写"。

如果你是个写了十几年 Win32 / WTL / MFC 的人,最理想的方案其实是:我那套 C++ 手感别动,界面逻辑一次写完,六端编译。

这正是 SOUI4 在做的事。

----------------------

1. 硬证据:一套 C++,业务代码零平台宏

空口无凭。SOUI4 自带一个跨平台样板项目 games/cnchess(中国象棋),它在 Windows / Linux / macOS / iOS / Android / 鸿蒙 六个平台共用同一份 C++ 业务代码。

我们逐文件统计了它的业务源码里平台宏的出现次数:

核心绘制与逻辑文件 ChessBoard.cpp、ChessPiece.cpp、algorithm/*( AI 引擎)完全没有平台宏。平台差异被 swinx 兼容层和移动端宿主库完全吸收,业务层只在薄薄的入口处用 __MOBILE__ 一个开关区分"移动触屏 vs 桌面弹窗"。

这意味着什么?意味着"一套 C++ 六端运行"不是 PPT 口号,是工程现实——一个中国象棋的完整对弈 + 联机 + 主题下载,六端复用同一份代码。

----------------------

2. 它是怎么做到的:用 Win32 当"世界语"

SOUI4 的核心设计哲学是:不造一套抽象层,而是重演 Win32 语义。

框架里有一层叫 swinx 的跨平台兼容层,它提供了 44 个与 Windows SDK 同名同结构的公共头文件(windows.h / gdi.h / unknwn.h / oleacc.h …)。于是 SOUI 内核直接 #include &LTwindows.h>,**零平台 #ifdef**。

非 Windows 平台不是"模拟一个长得像的 API",而是链接期解析:公共声明集中在头文件,各平台目录给出同名同签名的实现,构建时只把当前平台的源文件编进去。调用方写同一个函数名,正文里没有平台分支。

这套机制甚至能整块搬运重量级组件:

● RichEdit( Microsoft RichEdit 4.1 ,499 个文件)被整体搬到了非 Windows 平台,富文本能力六端一致;
● Scintilla 的 Win32 分支(语法着色编辑器)也是靠 swinx 把 CreateWindowEx / SendMessage / GDI 这套桌面子系统整体模拟出来,无需为每端另写后端。

----------------------

3. 鸿蒙是"一等公民",不是社区补丁

这一点对国内开发者尤其重要:在主流跨平台框架里,鸿蒙( OpenHarmony )要么是弱支持,要么根本没官方支持(评估报告对比表:Qt "OHOS 弱"、Flutter "官方无")。

SOUI4 通过 PlatformAPI 桥接,把 SApplication 托管进鸿蒙的 EntryAbility( ArkTS 侧经 HAR 包 @soui/ohos 导出)。鸿蒙是正式支持平台,和另外五个平台共用同一套语义。

而且,鸿蒙原生开发用的是 ArkTS (托管语言,有 GC 停顿),而 SOUI 整套 UI 树、事件路由、绘制调度、业务逻辑**全部是 AOT 编译的原生 C++**——没有虚拟机的 GC 抖动,这对游戏类、实时类应用价值最大。调系统能力时,你按原生习惯自己写 NAPI ,调用发生在 SOUI 的 UI 线程(即宿主原生线程)上,同一线程、无需线程切换,摩擦最接近原生开发。

----------------------

4. 它适合谁、不适合谁

适合:

● 熟悉 Win32/WTL/MFC ,想跨平台但不想学新语言/新范式;
● 需要上鸿蒙、又有 C++ 存量代码要复用;
● 独立开发者 / 小团队,想要体积小(核心约 2MB ,无 VM )、快速出界面;
● 桌面工具、游戏类软件,重视帧时序与低延迟。

不适合(诚实说):

● 想"把公司一套老 Win32 程序零成本迁移到六端"——这是 SOUI 的延伸目标,当前为"用 SOUI 编写的新应用"提供六端;旧 Win32 程序迁移所需的原生控件库 / 窗口菜单栏 / 资源对话框三块接口面尚未补齐(但地基已具备,差距是工作量不是架构问题)。
● 想要"开箱即用的丰富原生控件"——SOUI 是自绘 DirectUI ,控件面靠内置 40 个控件头 + 37 个扩展控件 + SRealWnd 挂原生窗口。

----------------------

5. 为什么我愿意把这个项目讲给你听

不是因为它"完美"。评估报告里也老实列了 11 项风险和 15 项优势——移动端还没自动构建门禁、核心维护者集中在一人、vendor 代码占了两仓库受控文件的 67%。

但这些短板性质高度一致:都是"工作量与流程"问题,不是"架构不确定性"问题。没有一项需要推翻现有设计。对一个开发者来说,这反而是最强的信任锚:坑在工程量里,不在架构里。

如果你也是那个"写了十几年 Win32 、又想让代码跑遍六端"的人,欢迎看看:

● 官网:soui.com.cn
● GitHub / Gitee 搜 soui4
● 知乎专栏「启程软件」(我会持续写 SOUI 的跨平台实战)

via V2EX (author: soui)
[分享创造] 做了一个血缘分析平台,解决 Agent 在开发过程中数据库变更造成的跨服务影响的问题

Agent 把交付速度抬上去之后,数据库变更的风险也增大了. 特别是数据流穿过多套数据库、N 个视图和多张仓库代码里从没出现过的报表时,改动本身会对哪些跨服务跨实例的语句造成影响,我觉得这个问题是需要解决的

所以我做了这个血缘分析平台,通过 MCP 提供检索功能给 Agent,让 Agent 可以感知数据库字段级的血缘,从而避免改炸了下游服务

这里有个简单的例子

完整文章在这https://metaxisdata.com/zh/blog/agent-era-schema-changes/

Github 地址在这 https://github.com/Ranxy/metaxisdata

欢迎大家来提 BUG 哈

via V2EX (author: ranxy)
[Windows] 实习生说他 token 太多了用不掉,于是我忽悠他重构了 windows 资源管理器的文件管理功能

背景信息

有一天实习生在这无所事事,我就问他:
你的 token 多不多?你的 Windows 资源管理器卡不卡?
于是他立即明白了我的意思,直接掏出 codex 就开始重构资源管理器!

重构产品

产品名称就叫 rust-explorer

目标

实现 Windows 资源管理器的文件管理功能,提供一个非常流畅而且保留原汁原味的文件管理功能,可以加入一些简单实用的调整,但是不会实现与原版资源管理器差异过大的功能。

兼容性

为了保持流畅,此项目不对原版 explorer 的拓展方式做过多兼容,例如预览,主页的自定义驱动器例如 WPS 网盘等内容。只对右键菜单和文件管理体验进行兼容。

技术栈

rust+gpui

缺点

● gpui 框架成也 gpu ,败也 gpu
在没有 gpu 的电脑上运行非常卡而且 CPU 使用率非常高。
在有 gpu 的电脑上运行非常流畅

以后打算使用 qt 再重构一版专门给没有 gpu 的电脑用

项目地址

https://github.com/Mingcodeingmiao/rust-explorer

via V2EX (author: evalfun)
[推广] Codex 纯 Pro 池|中转包月,共享重置,套餐多多

• 纯 Pro 池,纯 200 线路、纯 500 线路
• Codex 全模型可用
• 高 RPM / 高并发,适合长时间持续跑
• 多线路冗余,官方波动也有稳定线路可选
• 按量全场 0.2 ,充值立享 0.17 优惠,月度阶梯最低 0.15
• 包月订阅多档可选,综合最低不到 0.1
• 订阅套餐还可以共享官方重置

地址:codex.zhuanyedaili.com⁠
联系方式:QQ 群:1106944249 https://codex.zhuanyedaili.com/scripts/codex-qq-group.jpg

via V2EX (author: AI952995)
[程序员] 感觉自己的人生好失败

从高中开始就靠着兴趣学编程,也小有成果,自认为在同龄人中水平也算优秀了,当时搞了反汇编,读了各种设计的书,去开发游戏,靠自己去找人,找团体,还自学画画去做游戏,当时在这上面也挺自豪的
读了大学也享受着高中学到的技术带来的红利,开始搞 c++,什么东西都搞,而且很喜欢底层,越往底层越喜欢搞,也是找组织找社团,虽然好像没什么真正意义上很重大的成果,但起码自己内心是富足的,是认可自己的。
这时候我感觉自己有技术优越感,很鄙视开发仔,我感觉开发仔用的那些玩意在我高中的时候就摸透了,我觉得去做顶层的设计,去做前沿的东西才是有价值的,像开发仔天天盯着业务就跟螺丝钉没什么区别
但结果我自己还是做了开发仔,秋招关键节点,我拿了个大厂 offer 就开始摆烂了,没有再努努力,或者说,没有在大学期间搞更多有产出,跟紧时代前沿的东西。
身边同期的朋友一个一个都去搞 ai ,搞 gpu ,好羡慕啊,反观我自己的工作内容,天天盯着业务跑,被一些琐碎的事给填满,根本没精力想着怎么去搞一些工作外,能发展自己的东西,我感觉我天天都在浪费生命。我感觉我的同事也没有技术追求,也都是高级开发仔
感觉自己很失败,我自己都鄙视我自己,选择做错了感觉好痛苦,不想天天搞这些傻逼业务

写的有点豪,求大大们骂醒

via V2EX (author: 1300296933)
[酷工作] 紧急:高级 AI 全栈工程师(Agent 方向)高薪 50-75k

### 位名称

AI 全栈工程师( Agent 方向)/ 高级 AI 全栈工程师( Agent 方向)

### 公司一句话

大道云隐( DaoAscend / ********)——制造业主权 AI 基座。企业级私有 AI 产品线:密数天工(全离线 AI 智能体平台)、密数四库(数据治理)、密数点睛(图纸智能、物理仿真)、密数归藏(核心资产防护)。国家级高新技术企业、筑峰强链重点企业、AI 原生组织,本岗为产品核心研发。
### 地点与办公

- 常驻:常州新北区(沪宁一小时高铁圈)
- 高级候选人可申请以远程办公,具体面议

### 薪资与到岗
- **P6 ( 3-5 年):25-50k × 13 薪**
- **P7 ( 5-8 年):50-75k × 13 薪 ,核心模块 owner 权限
- **到岗时间灵活**:Q4 签 offer ,到岗时间可谈
- 学历:作品 > 学历。本科起步,QS100/硕士优先; AI Coding 重度使用者有放宽先例

### 岗位职责(按优先级排序,前 3 条为核心)
1. **大模型应用工程化**:Prompt 工程、上下文管理、结构化输出、流式交互、效果评测与调优——产品 AI 能力由你直接负责
2. **多智能体协同架构**:任务拆解、Agent 编排、工具调用( MCP 协议)、结果验证
3. **全栈端到端 owner**:Web 协同界面( TypeScript + React/Vue )+ 后端服务( Go/Node.js/Python 任一),独立完成需求→部署上线
4. RAG 双路召回(向量检索 + 全文检索)、文档解析、检索效果优化
5. 参与私有化交付与客户 POC (离线/Docker 部署、性能优化),把客户真实场景沉淀为产品能力
6. 桌面客户端( Tauri + TypeScript )研发——**非必须项**:有基础者优先,没接触过入职后学,团队有成熟框架和带教

### 硬性要求(一票否决)
1. 3 年以上软件开发经验,其中 1 年以上大模型应用/Agent 方向实战,**有已上线项目,Demo/课程作业不算**
2. 前端 TypeScript + React/Vue 至少精通一门;后端 Go/Node.js/Python 至少精通一门
3. 深度使用过至少一个主流大模型 API ( OpenAI/Anthropic 协议、DeepSeek 、GLM 等),实际写过 Function Calling / 结构化输出 / 流式处理
4. 做过向量检索 + 全文检索混合方案,用过至少一种向量库或全文检索引擎

### 加分项
- Rust / Tauri 桌面端经验(对应职责 6 )
- MCP 协议开发经验
- 私有化/离线部署、mTLS/网关等安全工程经验
- GitHub 开源作品或技术博客
- AI Coding 重度用户( Claude Code / Cursor 等日常主力工作流)
- 制造业/企业软件交付经验

### 高级版( P7 )附加要求
- 5 年以上经验,其中 2 年以上 Agent/RAG 方向
- 从 0 到 1 主导过 AI 产品核心模块的架构设计
- 带过 2 人以上小组,或主导过跨团队技术项目

### 我们提供(非现金筹码,显性化)

- 核心产品 owner 权限,产出直接进产品,不经过五层审批
- AI 原生组织:AI Coding 是日常工作方式,工具与 Token 预算全覆盖
- 混合办公 + 常州生活成本优势(同等薪资在常州的实际购买力远高于一线)
- 扁平组织,没有大厂螺丝钉问题
- Q4 签约、到岗时间灵活

via V2EX (author: wanghua1299)
[问与答] miao project 最近不好用,有人知道吗?

如题?

via V2EX (author: artii)
[分享创造] iOS V2EX 客户端 Röam,欢迎 TestFlight 体验。

在一位老哥的帮助下,终于上架了 TestFlight 。原生 iOS V2EX 客户端,Swift 写的。

主打简约,免费。为 V2EX 爱发电,后续稳定后还有 NodeSeek 发布。

哈哈 ,对于一个非程序员普通上班族来说第一次搞比较兴奋。

效果图:

体验链接:

https://testflight.apple.com/join/6PcpTn7p

谢谢~

via V2EX (author: dododook)
[AI Agent 智能体] grok bot 挺好用的,适合做一些自动化操作,就是主机内存才 15G, bot 多的时候不够用,额度用了也挺快的

via V2EX (author: androidCoder)
[macOS] MacOS27.0.1,第三方的截图工具,无法截取微信

有朋友发现了吗?这个怎么做到的啊?

via V2EX (author: codermali)
[生活] 你或者身边的人还看书吗,求推荐书籍

如题,我抛砖引玉吧。

如果小炒股票,推荐看:经济学人,订阅中,立场中立,文风冷幽默。各种二手财经博主的一手资料来源吧,其实不会文邹邹,很有趣。

喜欢深度游的人:孤独星球系列,有人文气息的旅行规划读物。

小白,真小白,真正的小白从 0 学编程,高中生,大学新生适合:Head first 系列。

via V2EX (author: guguphoenix707)
[投资] [大 A 专属幸福指数] 想知道从 7 月到现在,大家重仓科技的亏了多少钱

2w5 的本金,我都能亏 1w

想问下大家在大 A 里面从 7 月到现在赚了多少钱。

这个游戏到底是谁在赚啊

via V2EX (author: shilianmlxg)
换手机 IOS 迁移导致 Authenticator 中的 E3 登录掉了,网站也登录不上也没旧设备。大佬们有什么方法解决没,我的 E3 账号啊 呜呜呜 T_T

via V2EX (author: wantxp)
[问与答] 求推荐腾讯视频和 B 站会员优惠折扣

有没有大佬推荐一下

via V2EX (author: ChevalierLxc)
[推广] 🚀 **AigateGo · 实充 ChatGPT Pro 号池 0.20x**

全模型低倍率| Grok 0.05x 爽登
👉 https://api.aigatego.com

充值优惠码 BACK10 · 立减 10%

最近低价中转又开始集中翻车,用着真的心累:

第一章 · 天才陨落
Our servers are currently overloaded. Please try again later.

第二章 · 不翼而飞
unknown model gpt-6.1-sol

第三章 · 山穷水尽
Selected model is at capacity. Please try a different model.

第四章 · 封神提名
Your account has been deactivated because recent activity violated our Terms and Usage Policies.

第五章 · 穷途末路
exceeded retry limit, last status: 429 Too Many Requests

别家中转把对话当资产卖掉。代码、提示词、项目上下文,走一遭就不知道去哪了。
我们不记对话、不卖数据,后台只有消费日志。

AigateGo 只做一件事

● ✅ 自有号池,无上游、无中间商,实充 ChatGPT Pro 0.20x 直连,不是尾货、不是拼盘
● ✅ 全模型低倍率:Grok 0.05x 爽快登,GPT 等主流模型同样超低
● ✅ 不记数据,只留消费日志,安全放心
● ✅ 不限流、不掉号,速度丝滑,干净稳定优先

原生 OpenAI 兼容,换个 Base URL + Key 就能用。
多 Key 分项目,账单透明,不玩玄学倍率。
有问题直接砸群,秒修。

🎁 先测再决定,轻松领 $4

● 注册 + 回帖 → $2
● 进群再送 → $2
● 文档: https://api.aigatego.com/docs
● 计费: https://api.aigatego.com/pricing
● 交流群: https://t.me/AigateGo

via V2EX (author: ttokens)
[分享发现] 写了个 macOS 菜单栏工具,用来监控 Google Antigravity 的 Token 占用和缓存命中率

在 Antigravity 里面做多轮编码或者长任务时,官方界面不显示具体 Token 占用和上下文剩余量。经常写到一半模型反应变慢,没有安全感。

写了个轻量的常驻菜单栏工具 agy-menubar ,把 Token 消耗和缓存命中率直接显示在右上角。

实现上的几个点:

1. 零第三方依赖:只用 macOS 系统自带的 Python 和 PyObjC ,不需要 pip install 任何依赖包。
2. 纯本地读取:通过轮询本地落盘的会话记录(~/.gemini/antigravity/brain/),不调用任何外部 API ,不增加网络开销。
3. 状态栏视觉:CoreGraphics 在状态栏绘制 18x18 矢量环,按上下文占比显示绿、橙、红状态色。
4. 下拉看板:展开能看到 Prompt Cache 缓存量、本轮输入、上轮输出、剩余空间与当前模型。支持切换历史会话,支持中英文。

安装方式:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/kuhung/agy-menubar/main/install.sh)"

项目开源在 GitHub: https://github.com/kuhung/agy-menubar

欢迎经常用 Antigravity 编码的朋友试用和提 issue 。

via V2EX (author: kuhung)
[问与答] 大家平时有用什么稳定靠谱的梯子吗?

求介绍几个

via V2EX (author: vodmaker)
[问与答] 这种情况可以申请领取失业金吗?

老婆之前在上海工作,去年生娃休产假,产假正常是休到去年 11 月份,产假结束后她和单位协商是年后(今年 3 月)再去上班,然后我妈过来帮忙带孩子。但是年后因为家人身体原因,我妈没法过来帮忙带,所以老婆一直带娃到现在。

虽然这段时间一直没去上班,但是单位还是一直在交着她的社保,直到 8 月份社保才停缴,现在她的医保账户显示「在职 - 封存」状态,这种情况是已经算是离职状态了吗?想问下这种情况可以申请领取失业金吗?
注 1:她领导年后(3 月份的时候)问过她一次什么时候回去上班,她回复说还得过段时间,然后领导也没说啥,后面单位的人再也没有跟她联系过了,但是社保还是一直交到了 8 月份才停。其实年后那会儿她已经有离职的想法了,但是看到单位还在帮忙交着社保,就没有主动去提离职。
注 2:之所以没有主动去联系单位,是她担心联系单位之后,单位会要求她补缴这期间个人部分承担的社保和公积金


via V2EX (author: RonnieColeman)