欢迎使用twinBASIC
twinBASIC是一种新的BASIC语言和开发环境,致力于与VB6和VBA100%向后兼容,同时添加现代语言特性——泛型、原生Interface和CoClass声明、属性和包系统。编译器和IDE正在积极开发中,目前处于Beta阶段;常见问题涵盖了项目状态、作者信息以及当前已实现和未实现的功能,下载位于主GitHub仓库的Releases页面。
twinBASIC新手?
从常见问题开始了解——什么是twinBASIC、当前进展、支持什么——然后阅读特性概览了解twinBASIC在VBx基础上添加的所有内容。下方的教程部分提供分步指南;Arrays教程无需任何twinBASIC经验,是不错的入门读物。
从VBA或VB6转来?
大多数现有VB6/VBA代码无需修改即可编译。VBx兼容性之外的关键新增:新数据类型(LongLong、LongPtr、Decimal)、原生Interface和CoClass声明、用于继承的Implements Via和Inherits、泛型、方法重载、类型推断和属性语法。特性概览是完整的目录。
查找关键字、函数或运算符?
参考部分分为语言构造(编译器解析的内容)和运行时成员(内置包中提供的函数、属性、类型、类):
- 分类列表 —— 按用途分组的语句、过程和函数(编译器控制、声明、控制流、文件I/O……)
- 语句 —— 所有语言语句的字母索引
- 过程和函数 —— 所有可调用运行时成员的字母索引
- 运算符 —— 算术、比较、逻辑、位运算及twinBASIC新增运算符
- 编译器常量 —— 编译器识别的
#If符号 - 属性 ——
[Documentation(...)]、[COMCreatable(...)]及其余属性语法 - 控件 —— 标准UI控件(CheckBox、TextBox、CommandButton、……)按用途分组
- 术语表 —— 文档中使用的技术术语
内置包
包将相关代码组织在一个命名空间下,作为单个依赖项被项目引用。包页面列出了每个内置包及其简要描述;下面的标题按用途对它们进行分组。
默认包 —— 自动在每个项目中引用:
- VBA —— 标准运行时库(
MsgBox、CStr、Format、Mid、……)以及Collection和Err内置对象 - VBRUN —— 运行时类型(PropertyBag、环境属性、结构化错误上下文、拖放)以及经典VB6窗体和控件使用的枚举
- VB —— 标准控件(CheckBox、TextBox、CommandButton、……)和应用级单例(App、Screen、Clipboard、Printer、……)
额外GUI —— VB包之外的控件:
- CustomControls —— 自绘
Waynes...控件及用于创作新控件的DESIGNER框架 - WinNativeCommonCtls ——
MSCOMCTL.OCX的VB6兼容替代(DTPicker、ImageList、ListView、MonthView、ProgressBar、Slider、TreeView、UpDown)
Web嵌入 —— 在窗体中托管浏览器引擎:
Windows集成 —— 操作系统功能的轻量封装:
- WinServicesLib —— 将twinBASIC EXE作为一个或多个Windows服务运行
- WinEventLogLib —— 写入Windows事件日志条目,支持编译时消息表生成
- WinNamedPipesLib —— 基于IOCP的异步命名管道服务器和客户端
工具链:
教程
- Arrays —— 固定数组和动态数组、
Dim、ReDim、多维结构 - CustomControls —— 使用
Waynes...框架构建自绘控件 - WebView2 —— 嵌入Edge运行时:托管本地资源、JavaScript互操作、驱动Monaco
- CEF —— 嵌入Chromium:构建浏览器外壳、托管本地资源、JavaScript互操作、驱动Monaco
twinBASIC IDE
IDE部分记录了编辑器、项目资源管理器、调试面板(调用栈、监视、诊断、调试控制台)、tbForm和tbReport设计器以及各功能侧面板。要安装第三方加载项,参见Add Ins;要自行开发加载项,tbIDE包是加载项SDK。
社区和外部资源
- GitHub上的twinBASIC wiki以社区贡献和对前沿特性的说明补充了本站文档。
- 视频 —— twinBASIC视频系列和Access DevCon会议演讲。
- Mike Wolfe在@nolongerset的第三方指南:
贡献文档
本文档为开源项目。参见文档开发了解构建和预览工作流以及贡献约定。
AI生成