Repository navigation
Releases: YoloLogic/ChinesePlusPlus
Release list
Chinese++ 0.3(win64)
Chinese++ 0.3(win64,2026-10-09)
下载:下面 Assets 区块里的 Chinese++-0.3-win64.zip(约 101 MB)。
Assets 区块可能是折叠的 —— 点一下展开才能看到附件。
怎么用(三步)
- 解压到任意目录(路径里有中文也没关系,已实测)
- 双击
一键安装.cmd(只在这个文件夹里做事,不碰系统 PATH、不碰你已有的 VS Code) - 想确认装好了:跑
verify.ps1—— 它真编译、真链接、真运行,29 项全过才算能用
不需要装 Visual Studio:本包默认 bundled 模式,自带工具链基底
(开源版 MSVC STL 头 + mingw-w64 的 UCRT/Win32 头 + 我们自己的 CRT 与导入库 + app-local 的 VC++ 运行时 DLL)。
想用你机器上的 VS:powershell -NoProfile -File install.ps1 -Toolchain system。
不想联网 / 只想拿编译器:powershell -NoProfile -File install.ps1 -NoEditor
相对 0.2 的变化
- C 库汉化做到「除硬边界外全覆盖」:26 个中文 C 包装头,中文名 362 个
(标准::格式化输出、标准::分配内存、标准::快速排序、标准::串转最大整数…都能中文调);
逻辑缺口 230 → 14,且这 14 个全是硬边界(cmath 的 12 个函数式宏 + 2 个_Mbstatet别名)。 - 修掉一个会咬人的既有缺陷:中文复数重载被 C 轨的变参转发劫持(
标准::平方根(复数)编不过)。 - 编译器本体更新:
bin\chinese++.exe/llvm-ar.exe/llvm-rc.exe。 - 包内自测 21 项 → 29 项(新增 5 项是逐份点名检查许可/合规文件)。
常见问题.md第一节订正:本包默认开箱即用(自带工具链基底),不再写「必须先装 Visual Studio」。- 补齐许可与合规(见下):新增
LICENSE(自定义条款)/LICENSE-SCOPE.md/TRADEMARK.md,
并把NOTICE.txt按 0.3 实况订正(旧版说"没有再分发微软的库",而 0.3 起带了 app-local 的
可再分发 VC++ 运行时 DLL 与开源版 MSVC STL 头;旧版还说 compiler-rt 不含、ASan 不可用,其实已含)。
许可与再分发(重要,先看这一节)
本发行包不是单一许可,完整判定规则见包内 LICENSE-SCOPE.md:
| 哪一部分 | 许可 | 你能做什么 |
|---|---|---|
| 我们写的(中文关键字表 / 诊断正文表 / 中文标准库里我们写的 / 安装脚本 / 文档) | 自定义条款(LICENSE) |
读、学、改(自用)、用它写程序卖钱都行;不许重新打包再发布 |
编译器与 LLVM(bin\*.exe、lib\clang\**) |
Apache-2.0 with LLVM Exceptions(LICENSE.TXT) |
可再分发、可商用、可再许可 —— 不受那条"禁止再发布"的限制 |
微软 / 第三方(lib\stl\ 开源 MSVC STL 头、lib\mingw\ 头、bin\*.dll 运行时) |
各按各的许可 | 逐项见 NOTICE.txt;那些 DLL 是微软可再分发的运行库 |
- ✅ 你用本工具链写出来的程序,版权与许可完全归你 —— 我们的许可不对编译产物附加任何条件。
- ✅ 非营利、原封不动地整体转发官方发行包:允许(四个条件见
LICENSE第四节)。 - ❌ 重新打包发布 / 改名换标上架 / 捆进你的产品 / 发布你的修改版 / 拆开只取一部分:不行,需事先书面许可。
- ❌ 名字不能用:
Chinese++/汉语编程的名称与图标属项目作者(见TRADEMARK.md)。
⚠ 性质说明:这是 source-available(源码可见),不是 OSI 意义上的开源 ——
OSI 的开源定义要求允许再分发。我们如实这么写,不混淆。
这个包能编什么(实测输出)
#包含 <向量>
#包含 <C标准输入输出>
整数 主函数(){
标准::向量<整数> 数 = {1, 2, 3, 4};
整数 合计 = 0;
对于 (整数 甲 : 数) { 合计 += 甲 * 甲; }
标准::格式化输出("平方和 = %d\n", 合计);
标准::格式化输出("元素个数 = %d\n", (整数)数.尺寸());
返回 0;
}chinese++ -std=c++20 平方和.cpp -o 平方和.exe
.\平方和.exe
# 平方和 = 30
# 元素个数 = 4(不加任何 -I / -isystem;#包含 <向量>、#include <vector> 都直接可用。)
校验与合规
MANIFEST.txt记着包里每个文件的 SHA256,verify.ps1会核对(含 5 份许可/合规文件逐份点名)。- 这是修改过的 LLVM/Clang,不是上游原版:改动声明见
NOTICE.txt(依据 Apache-2.0 第 4(b) 条)。 - 包内第三方来源与许可逐项写在
NOTICE.txt。
反馈请带上
MANIFEST.txt 前两行(版本 + built 时间)+ chinese++.exe 那一行的 SHA256 + 你的 Windows 版本
bundled还是system模式(看bin\toolchain.txt)。
Chinese++ 0.2
Chinese++ 0.2
一句话:这一版把「汉语标准库」真正做进了包里,并把 GUI 那条轨道从"最小一块"推到
窗口 / 控件 / 菜单 / GDI(含位图与双缓冲)。
新增(相对 0.1)
- 汉语标准库随包:
zhstdlib\,119 个中文头 —— 标准库 48(向量 / 字符串 / 映射 / 算法 / 迭代器…)
+ 别名 43 + C 运行库 25(C标准输入输出 / C数学 / C字符串…)
+ windows系统 3(Windows系统/窗口/绘图)。
解压装好后#包含 <向量>开箱可用;英文原名照旧(std::vector/.push_back()/printf)。 - 安装时自动写搜索路径:
bin\chinese++.cfg/clang++.cfg/clang.cfg
⇒ 命令行与编辑器(clangd)都不必再记那 5 条-isystem;移动包之后重跑一次一键安装即可。 - 窗口 GUI(新头
<窗口>):窗口类(WNDCLASSEXW 复制体,带布局断言表)、消息(MSG 复制体)、
消息码、注册窗口类/创建消息窗口/取消息/翻译消息/派发消息、
窗口函数(设置窗口标题/取窗口标题/取窗口矩形/取窗口位置/移动窗口/发送消息/投递消息/
显示窗口/更新窗口/销毁窗口/启用窗口/是否启用/取控件标识)、
控件(创建按钮/创建编辑框/创建静态文本/创建复选框/创建列表框/创建组合框/创建进度条)
与它们的消息(设置勾选/取勾选/添加列表项/添加组合项/设进度范围/设进度值…)、
菜单(创建菜单/创建弹出菜单/追加菜单项/取窗口菜单/设置窗口菜单/删除菜单/取菜单项数/
取子菜单/绘制菜单栏)。 - GDI(新头
<绘图>):设备上下文/画笔/画刷/字体/位图/绘图对象/颜色参考;
取窗口设备上下文/开始绘制/结束绘制/填充矩形/画矩形/画椭圆/画线/输出文本/
设文本颜色/设背景颜色/设背景模式/取设备能力/取系统度量;
位图与双缓冲:创建兼容设备上下文/创建兼容位图/位块传送/取位图尺寸/装入位图/
设像素/取像素/删除兼容设备上下文;创建画笔/创建字体/取文本范围。 - compiler-rt 完整:12 个运行库(ASan / UBSan / 覆盖率)+ 4 个 ignorelist(
share\)
+ 20 个接口头(sanitizer\/profile\/fuzzer\,于是#include <sanitizer/asan_interface.h>可用)。
有意不含orc_rt/xray/memprof(这三个运行时本次构建显式关闭)。 - 自测 21 项(
verify.ps1):中文关键字、中文诊断、#包含 <向量>不带任何-I也能编、
AddressSanitizer 真报一次 use-after-free、--coverage真链上、资源目录/许可证/硬链接齐全……
怎么用(三步)
- 装 Visual Studio 的 C++ 组件(必须:MSVC STL 与 Windows SDK 不在包里);
- 解压后双击
一键安装.cmd; powershell -File verify.ps1—— 21 项全过就是能用。
#包含 <向量> // 中文头名;<vector> 照旧
整数 主函数(){
标准::向量<整数> 表; // std::vector<int> 照旧
表.尾插(1); 表.尾插(2); // .push_back() 照旧
返回 (整数)表.尺寸() == 2 ? 0 : 1;
}已知边界(说清楚,不藏着)
- UI 那部分要额外链库:窗口/控件要
user32.lib,进度条要comctl32.lib,GDI 要gdi32.lib
(产品头不替用户自动链 —— 这是"不改动你工程"的代价)。 消息框(模态)与TrackPopupMenu没有真跑用例:实测(四种关闭手段全失败)表明,
给隐藏窗口当 owner 时消息框不显示但也关不掉,真调会挂死测试;让它显示又违背"用例不弹窗"。
它们只做编译期类型检查。你写自己的程序当然可以用。- 需要 VS Build Tools;真正"干净机器"上的验证仍未做(本机始终有构建树)。
Chinese++ 0.1
Chinese++ 0.1 — 首个发行包
Windows x64,x86_64-pc-windows-msvc。
作者个人理解的完美的汉语编程。
#包含 <cstdio> // 中文指令,等价于 #include
#include <vector> // 英文指令 —— 混着写没问题
整数 主函数() { // 主函数 = main
std::vector<int> 数字{1, 2, 3}; // 库名仍是英文
整数 和 = 0;
对于 (整数 n : 数字) // 对于 = for
和 += n;
std::printf("和 = %d\n", 和);
返回 0; // 返回 = return
}包含什么
- 基于修改过的 Clang/LLVM 24.0.0git 构建的工具链
- 99 条中文关键字拼写、22 条中文预处理指令、7344 / 7374 条中文诊断正文
主函数与main是同一个标识符- 英文拼写一律保留、行为不变;改动不涉及任何
Diagnostic*.td
⚠️ 第 1 步:先装 Visual Studio 的 C++ 组件(必须,别跳过)
已经装过 Visual Studio、且勾了「使用 C++ 的桌面开发」的 —— 跳过这一步。
三条路,挑一条:
# 最快:一行命令
winget install --id Microsoft.VisualStudio.2022.BuildTools --override "--quiet --add Microsoft.VisualStudio.Workload.VCTools --includeRecommended"- Build Tools 直链(点开就下安装器,约 2 GB):https://aka.ms/vs/17/release/vs_BuildTools.exe
- 完整版 Visual Studio Community(免费,图形界面更友好):https://visualstudio.microsoft.com/vs/community/
—— 安装时务必勾选「使用 C++ 的桌面开发」 - 官方图文安装教程:https://learn.microsoft.com/cpp/build/vscpp-step-0-installation
下载约 2 GB,装完约占 6 GB,需要管理员权限,需要几分钟。
为什么必须装? 本工具链不自带标准库 —— C++ 标准库(std::vector、std::string…)、C 运行库、Windows SDK 都是微软的东西,没有权利把它们打包分发。
这也是一件好事:正因为用的是微软原封不动的 MSVC STL,本编译器编出来的东西和官方 clang / MSVC 编出来的二进制兼容,可以互相链接,现成的第三方库照用。
没装的症状:编译时报 找不到文件(名字) 'cstdio'。看到「找不到文件」这类错,十有八九就是这一条。
第 2 步:下载并解压本页附件
见本页最下方 Assets 区块 —— 它可能是折叠的,点一下展开才能看到 Chinese++-0.1-win64.zip。
解压后双击 一键安装.cmd:
- 重建 9 个硬链接别名(
clang.exe、clang-cl.exe、lld.exe…) - 生成
env.cmd—— 窗口级 PATH 设置器,不碰你的永久 PATH - 检查 Visual Studio Build Tools,缺了就打印确切要装什么
- 把官方 VS Code 下载到本目录的
.\vscode\,用便携模式配好(中文语言包 + clangd),你自己装的那个 VS Code 一个字节都不动 - 编译并运行一个中文 hello world,证明它真的能用
需要联网(下载 VS Code 约 320 MB)。断网了就重新双击一次,已装好的部分不会重装。
第 3 步:验证
powershell -File verify.ps1它会从包内真编一个中文 hello world。过了就是能用。
不确定 Visual Studio 装没装,也可以先跑它 —— 它会告诉你缺什么。
说明
- 本仓库只发布发行包,源码不公开
- LLVM 派生内容依 Apache-2.0 WITH LLVM-exception 分发,许可证正文见仓库内
LICENSE.TXT - 改动声明与第三方说明见
NOTICE.txt - 详细文档:
常见问题.md与中文对照表.md - 不是微软官方产品,与 Microsoft 无隶属或背书关系
English
First release (Windows x64, x86_64-pc-windows-msvc).
Chinese++ is a modified LLVM/Clang 24.0.0git toolchain that makes Chinese keywords a
first-class spelling in C++. English keywords still work, and the two can be mixed freely.
- 99 Chinese keyword spellings, 22 Chinese preprocessor directives, 7344/7374 translated diagnostics
主函数is the same identifier asmain- The standard library deliberately keeps its English names
workload first:
winget install --id Microsoft.VisualStudio.2022.BuildTools --override "--quiet --add Microsoft.VisualStudio.Workload.VCTools --includeRecommended"or grab the direct installer /
Visual Studio Community (tick
"Desktop development with C++"). Otherwise compilation fails with file not found: 'cstdio'.
Then download Chinese++-0.1-win64.zip from the Assets section below, extract it, run
一键安装.cmd, and run verify.ps1 to prove it works.
Distributed under Apache-2.0 WITH LLVM-exception — see LICENSE.TXT and NOTICE.txt in the
repository. Not a Microsoft product.
2026-10-06 重打(同一个 v0.1 标签,替换了 zip 资产)
这一版把「汉语库」真正做进了包里,并把 GUI 第四轨道推进到 GDI / 控件 / 菜单:
- 汉化库随包:
zhstdlib\(119 个中文头:标准库 48 / 别名 43 / C运行库 25 / windows系统 3)
⇒ 解压装好后#包含 <向量>开箱可用;tools\里的两个脚本负责把搜索路径写进bin\*.cfg。 - GUI 中文名:
<窗口>(窗口类/消息/控件/菜单)+ 新头<绘图>(GDI:设备上下文/画笔/画刷/
填充/画矩形/画椭圆/画线/输出文本/无效化矩形/设备能力 …)。要链user32.lib/gdi32.lib。 - compiler-rt:12 个运行库(ASan/UBSan/覆盖率)+ 4 个 ignorelist + 20 个接口头
(<sanitizer/asan_interface.h>可用)。 - 安装时自动写搜索路径:
bin\chinese++.cfg/clang++.cfg/clang.cfg
⇒ 命令行与编辑器(clangd)都不必再记那 5 条-isystem;移动包后重跑一次一键安装即可。 - 自测:包内
verify.ps1= 21 passed, 0 failed(含 ASan 真报 use-after-free、--coverage、
中文关键字、以及"不带任何-I也能编中文头"那一段)。
已在中文路径与另一盘符各验一遍;最小 PATH(只剩 system32)下也能编能跑。 - 已知前提:本工具链需要机器上装 Visual Studio 生成工具(MSVC STL 与 Windows SDK 不在包里)。