v1.0.0 Preview · 28 个里程碑全部达成 · 82 项测试零失败

C3 第三代 VB6 编译器

让 Visual Basic 6.0 工程直接产出原生 x64 Windows 程序
Unicode 全程支持、多线程运行时、COM 互操作静态链接零依赖

x64 · Unicode · Multi-threaded · COM · Zero-modification

VB6 迈入新时代所需的一切

无需修改任何源代码,你的 VB6 工程直接产出原生 x64 Windows 程序。

x64 原生产出

生成 64 位 Windows 可执行文件和 DLL。突破 2GB 内存限制,原生支持 x64 COM 互操作。

Unicode 优先

BSTR 字符串全程 UTF-16。源文件支持 GBK/UTF-8/UTF-16 三种编码自动检测,中文处理零障碍。

多线程运行时

告别单线程单元模型。自由线程 COM、CreateThread、真正的并行执行,发挥多核性能。

安全编译保证

不支持的语法必然报错,绝不静默误编。误编比不编更危险——这是 C3 的核心信条。

静态链接 RTL

无运行时 DLL 依赖。200+ VB6 内置函数全部内置到可执行文件,部署干净利落。

COM / ActiveX DLL

原生 COM 客户端/服务端支持。编译 ActiveX DLL、TypeLib 导入、Implements 接口、WithEvents 事件。

c2 → C3:三代的跨越

VB6 原生编译器 c2.exe 仅支持 x86。C3 带来三项根本性升级。

能力 c2.exe (VB6 原生) C3 (vb6c3)
目标架构 x86 (32位) x64 (64位) NEW
字符串编码 ANSI / Unicode Unicode (UTF-16) 全程 NEW
线程模型 单线程 / STA 多线程 NEW
运行时 MSVBVM60.dll 静态链接(零依赖部署)
调试支持 PDB PDB 原生调试信息
COM 支持 客户端 + 服务端 客户端 + 服务端 (x64)
ActiveX DLL 需 VB6 IDE 命令行直接编译 NEW
CLSID 固定 需二进制兼容(无法指定) 可在 VBP 中指定 NEW

VB6 源码 → 原生程序

从源码到可运行程序,一步到位,零外部依赖。

VB6 源码
原生编译
.exe / .dll

开始使用 C3

三步即可开始:下载 C3 → 配置运行环境 → 编译你的第一个 VB6 工程

下载 C3

v1.0.0 Preview · Windows x64 · 内置多个演示示例

  • 包含 hello.bas、数组、文件 I/O 等测试源码
  • VBP 工程示例(多模块编译)
  • COM 客户端/服务端示例
  • 第三方 COM 事件源(VBMAN / WinHTTP)示例
  • frxParse 实战工程编译演示
  • 条件编译、Declare 语句示例
下载 C3 公测版本

运行环境配置(选配,内置了自动化安装脚本)

C3 需要配合 Windows 平台工具链来产出最终程序。

推荐

Visual Studio

最佳兼容性,原生调试信息,Windows SDK 完整支持。

安装 Visual Studio 2022 Community(免费),勾选「桌面开发用 C++」工作负载即可。

备选

MinGW-w64

轻量替代方案,无需安装 Visual Studio。

如果本机已有 MinGW,确保 gcc 在 PATH 中即可。如未安装:

下载 MinGW-w64
快速开始
:: 1. 编译单个 VB6 源文件
> c3 hello.bas
✓ 编译成功: hello.exe (x64)

:: 2. 编译 VBP 工程文件
> c3 MyProject.vbp
✓ 编译成功: MyProject.exe (x64)

:: 3. 编译 ActiveX DLL
> c3 MyLib.vbp --target dll
✓ 编译成功: MyLib.dll (x64)

:: 4. 查看诊断信息
> c3 hello.bas
✓ 0 错误, 0 警告

里程碑驱动开发

每个阶段必须通过验证才能推进。28 个里程碑全部达成。

M1

基石搭建

项目框架构建、错误诊断系统、多编码源码支持、源码扫描引擎、命令行驱动

已完成
M2

语法理解引擎

完整的 VB6 语法结构识别、80+ 语法节点覆盖、软关键字智能识别、条件编译指令支持

已完成
M3

逻辑与类型验证

变量与作用域管理、类型系统与兼容性检查、智能类型推导、默认属性自动识别

已完成
M4

原生代码生成引擎

VB6 类型到原生类型的精确映射、表达式与流程控制代码输出、Windows 平台工具链集成

已完成
M5

运行时支持库

字符串、动态数组、变体类型、200+ 内置函数、文件读写、错误处理,全部内置零依赖

已完成
M6

工程与多模块支持

VBP 工程文件直接编译、多模块联合编译、跨模块引用解析、外部 DLL 调用声明

已完成
M7

COM 与对象系统

COM 对象创建与调用、类型库自动导入、接口实现、事件处理、ActiveX DLL 编译

已完成
M8

窗体与控件

窗体描述解析、控件事件自动绑定、可视化界面程序编译、菜单与浏览器控件

已完成
M9

TypeLib 内建生成

CreateTypeLib2 API 内建 TypeLib 生成,彻底移除 MIDL 依赖;ActiveX DLL 全流程简化

已完成
M10

RTL 内嵌零配置编译

RTL 静态库作为 Windows 资源嵌入 c3.exe,编译时释放、完成后清理。单一可执行文件零依赖分发

已完成
M11

实战工程编译验证

frxParse 工程端到端编译+运行;.frm 含 OCX 引用行解析;.frx 二进制资源完整读取;COM ProgID 反查修复

已完成
M22

真实 VB6 项目编译

realVBP + Form demo 编译链接成功,9 项运行时深度修复,path 双重编码问题全面修复,74/74 回归

已完成
M28

第三方 COM 事件源

VBMAN cHttpClient / WinHTTP 事件源 Advise 修复;事件 Sink 响应 source IID;VB6 字符串语义修复;Format 函数 ~600 行完整重写

已完成
P30

P30 / P31 持续推进

P30 扁平化 UI 引擎(--flat-ui 编译参数);P31 VB6 工程文件类型覆盖(.ctl/.pag/.dsr/.dob)

开发中
44,000+
引擎核心代码行
200+ / 359
内置函数 / 内置常量
82
回归测试
0
失败项

当前支持范围与限制

C3 正在持续完善中,以下是目前已支持和尚未覆盖的控件及功能。

已支持的控件

  • Form / MDIForm窗体与 MDI 父窗体
  • CommandButton命令按钮
  • TextBox文本框
  • Label标签
  • CheckBox复选框
  • OptionButton单选按钮
  • ListBox列表框
  • ComboBox组合框
  • Frame分组框(BS_GROUPBOX)
  • PictureBox图片框(SS_BITMAP)
  • HScrollBar / VScrollBar水平/垂直滚动条
  • Image图像(SS_BITMAP)
  • Timer定时器(不可见,无窗口句柄)
  • Menu菜单系统(多级、分隔线、勾选、禁用)
  • WebBrowser浏览器宿主(WebView2 / ShellNavigate)

尚未支持的控件

  • Shape / Line图形与线条控件
  • Data / OLE数据绑定与 OLE 容器
  • DriveListBox / DirListBox / FileListBox文件系统控件
  • SSTab选项卡容器
  • Toolbar / StatusBar工具栏与状态栏(MSComctlLib)
  • CommonDialog通用对话框(MSComDlg)

其他限制

  • 控件数组之外的容器控件嵌套尚未完整支持
  • 不支持的语法必然报错,绝不静默误编