Skip to content

Releases: YoloLogic/ChinesePlusPlus

Chinese++ 0.3(win64)

Choose a tag to compare

@YoloLogic YoloLogic released this 09 Oct 07:26

Chinese++ 0.3(win64,2026-10-09)

下载:下面 Assets 区块里的 Chinese++-0.3-win64.zip(约 101 MB)。

Assets 区块可能是折叠的 —— 点一下展开才能看到附件。

怎么用(三步)

  1. 解压到任意目录(路径里有中文也没关系,已实测)
  2. 双击 一键安装.cmd(只在这个文件夹里做事,不碰系统 PATH、不碰你已有的 VS Code)
  3. 想确认装好了:跑 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

Choose a tag to compare

@YoloLogic YoloLogic released this 06 Oct 01:43

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 真链上、资源目录/许可证/硬链接齐全……

怎么用(三步)

  1. 装 Visual Studio 的 C++ 组件(必须:MSVC STL 与 Windows SDK 不在包里);
  2. 解压后双击 一键安装.cmd;
  3. 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

Choose a tag to compare

@YoloLogic YoloLogic released this 26 Sep 21:18

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"

下载约 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 as main
  • The standard library deliberately keeps its English names

⚠️ The MSVC STL and Windows SDK are not bundled. Install Visual Studio Build Tools with the C++
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 不在包里)。