#############################################################################
• 源官方网站:https://www.twinbasic.com
• 中文社区网站:https://www.twinbasic.com.cn
• 中文汉化源码:https://gitee.com/woeoio/ha-twinbasic-ide
• 中文版本下载:请加群到群文件下载,或者点进gitee开源仓库获取
• 中文交流群组:788160802 点这里加入QQ群聊
• 中文QQ频道讨论组:https://pd.qq.com/s/hgy70wcza
#############################################################################
本次更新亮点包括VBForums的专用twinBASIC论坛,本周五即将发布的beta版本的新预告图像,以及fafalone的几个项目。
2021 年 4 月 23 日,我帮助 Wayne Phillips 在维也纳 Access DevCon 大会上向全世界介绍了 twinBASIC。我大胆地预测,到 2025 年,twinBASIC(以及 Monaco 编辑器)将取代 VBA 及其过时的开发环境。考虑到这个目标,我试图让这个项目在 VBA 开发社区的脑海中保持新鲜感。
每个星期天,我都会提供有关项目状态的最新信息,链接到讨论twinBASIC的新文章,并尝试增加对项目的参与度。如果您遇到应该包含在此处的项目,请@NoLongerSet发推文给我或发送电子邮件至 mike,网址为 nolongerset dot com。
以下是参与该项目的一些链接:
以下是即将发布的一些预告图片,暂定于本周晚些时候的 1 月 19 日发布。
[Wayne]:项目设置/引用现在移至模式对话框。这是 VSCode 时代遗留下来的,当时我们无法创建模态对话框。
[Wayne]:下面我们来详细了解一下下一版本中新增的 LIB/OBJ 文件支持。语法为:Import Library “filepath” As <Namespace> Link <DependenciesList>
。然后,可以在 Lib
参数的 Declare
语句中使用用于 <Namespace>
的符号,如图所示。
[Wayne]:对于下一个版本,所有常规 IDE 操作现在都有与之关联的命令 ID,现在我们内置了键盘快捷键自定义,以便您可以将任何键盘快捷键分配给这些新命令 ID 中的任何一个。目前有 205 个命令可用。
[编者注]:有关可用命令 ID 的完整列表,请参阅 Discord:
与此相关的是,执行命令 ID 也将通过可扩展性模型公开,这意味着 twinBASIC IDE 插件也将能够直接调用所有 IDE 命令。
[Wayne]:这个基于命令的新系统将在未来发展壮大。有了这个,我们已经完成了宏记录器80%的工作。
[Wayne]:格式菜单现在全部实现,为下一个版本做好准备
[Wayne]:只是调整了新的“光”主题:
时隔近三年,twinBASIC终于在VB6讨论站VBForums上有了专门的论坛。
由于最初的twinBASIC主题有超过1,750条回复,并且有接近100万(!)的浏览量,因此早已过了专门论坛的时间:
Wayne 在新论坛的一个帖子中宣布了这一里程碑:
你好!向所有vbforums成员致以热烈的问候,
我很高兴看到twinBASIC社区的这一重要里程碑。感谢vbforums团队的大力支持和奉献,我们现在在这里拥有了自己的子论坛!这不仅仅是一个新的讨论空间;它是创新、学习和协作的中心。
首先,衷心感谢vbforums团队。非常感谢您对twinBASIC的信任以及为我们的社区提供平台的承诺。您的努力为twinBASIC爱好者提供了一个可以称之为家的地方,对此,我由衷地感谢。
对于所有参与过我们旅程的人和刚刚加入我们的人,欢迎!twinBASIC不仅仅是一种编程语言;这证明了当我们对技术和创造力有着共同的热情时,我们可以取得什么成就。无论您是经验丰富的程序员还是刚刚起步的程序员,这个论坛都适合您。深入讨论、分享您的项目、提出问题并帮助他人。您的见解和经验使这个社区充满活力和独特性。
展望未来,有很多值得兴奋的事情。今年是twinBASIC的更新和新功能。虽然我不想过早地透露太多,但我向你保证,有很多理由继续关注。我们致力于使twinBASIC功能更强大、用户友好、用途更广,您的反馈将在此过程中发挥重要作用。
所以,让我们开始吧!试用twinBASIC,参与论坛,并参与塑造这个不可思议的工具的未来。我们将携手合作,不断突破极限。
感谢您的热情和支持。以下是twinBASIC子论坛的精彩旅程!
诚挚的问候,
韦恩·菲利普斯
*通过 poe.com 上的 Claude-2-100k 自动生成
以下是过去一周通用频道 Discord 聊天记录中关于twinBASIC开发的要点摘要:
通用频道涵盖了与新编程语言 twinBASIC 的持续开发相关的广泛主题,该语言旨在成为经典 Visual Basic 6 语言的现代复兴。
-
新版本计划于 1 月 19 日发布,其中将包括许多预期的功能,如静态库链接支持、IDE 键盘快捷键等。社区中有很多令人兴奋的建筑。
-
实现功能齐全的 IDE 的工作仍在继续,包括改进,例如用于项目引用的模式对话框、新的格式菜单和浅色/深色主题。
-
讨论在 v1.0 发布之前何时以及以何种程度公开推广 twinBASIC,平衡兴趣和设定适当的期望的最佳实践。
-
围绕潜在的新功能(如 IDE 本地化、宏录制、git 集成和多线程支持)进行对话。
-
解决用户在其项目中试用twinBASIC时提出的各种错误和限制。
这些对话显示了在 2024 年发布 v1.0 目标的进展,包括完成关键的 IDE 功能和语言特性。随着twinBASIC功能的增强,社区的兴趣和参与度继续稳步增长。对于即将到来的 1 月版本以及随后的 1.0 版进展,人们仍然非常期待。
这是我在之前的每周更新中完全忽略的 fafalone 的两个主要项目版本之一(对不起,乔恩!从好的方面来说,最近有一个重要的错误修复,现在任何第一次签出该项目的人都包括在内。
以下是 AI 生成的项目摘要:
WinDevLib(以前称为 tbShellLib)是为 twinBASIC 量身定制的扩展性 Windows 开发库。它代表了超越其最初范围的重大演变,最初主要关注 shell 编程。该库现在提供全面的 Windows API 体验,类似于在 C++ 中使用,标志着更符合其提供通用 Windows 开发工具包的更广泛目标的过渡。windows.h
- 重命名:为了反映其更广泛的范围,tbShellLib 已更名为 WinDevLib,并对编译器常量和模块名称进行了相应的更新,例如,tbShellLibImpl 现在是 WinDevLibImpl。
- 增强的智能感知:在 twinBASIC 的 Beta 版本 368 及更高版本中,由于缓存和其他优化,智能感知性能得到了显著提高。此增强功能使 WinDevLib 更加用户友好且响应迅速。
- 当前版本:该库不断更新,截至 2024 年 1 月 10 日,最新版本为 7.2.301 版。
WinDevLib 由 Jon Johnson (fafalone) 创建,是 oleexp.tlb 和 VB6 的现代 Shell 接口类型库项目的直接继承者。它与 x64 系统完全兼容,克服了 midl 生成的 64 位类型库的限制。此项目通过使用 twinBASIC 友好类型提供对 Windows shell 和组件接口的访问,解决其他导入引用中常见的无符号类型、C 样式数组和双指针问题,为 twinBASIC、VB6 和 VBA 社区提供服务。
- COM 接口覆盖率:WinDevLib 包括 2,200 多个常见的 COM 接口,确保习惯于使用其他语言的 COM 的开发人员的兼容性和易用性。
- Windows API 集成:该库现在包括大约 5,500 个经过手工审查的 Windows API,这些 API 已恢复为 64 位兼容性,并经过精心策划以避免在自动转换工具中发现错误。
- 枚举和智能感知:通过将常量组转换为枚举,WinDevLib 利用了 twinBASIC 的高级智能感知功能,这些功能现在支持 API 定义中的更多类型。
- 原生 twinBASIC 实现:作为 twinPACKAGE,WinDevLib 受益于 twinBASIC 对接口和 coclass 的原生支持,允许在同一项目中无缝集成定义和常规代码。
WinDevLib 通过消除手动定义接口及其依赖项的需要来简化开发过程。它被设计为一种即插即用的解决方案,大大减少了新项目的设置时间和工作量。凭借其广泛的 API 覆盖范围,它旨在满足大约 99% 的核心系统 DLL 要求,使其成为 twinBASIC 开发人员不可或缺的工具。
WinDevLib 是任何 twinBASIC 开发人员工具包的重要补充,它提供了一组丰富的功能和改进,可简化开发过程。它从 tbShellLib 到 WinDevLib 的过渡反映了它的发展以及为 twinBASIC 程序员提供强大而全面的开发库的承诺。
有关详细信息以及贡献或利用这个不断发展的库,鼓励开发人员访问 GitHub 上的 WinDevLib 项目页面。
(c) 2022-2023 乔恩·约翰逊 (fafalone)
fafalone 最近发布的第二个大型项目是他的 Windows 设备管理器克隆 DevExplorer:
最初是概念验证,后来演变成成熟的替代品。
在实施过程中,fafalone 偶然发现了一个重要的原因,在这个项目中使用了 twinBASIC 而不是 VB6:
目前,在twinBASIC中执行此项目有一个不寻常的原因:启用/禁用/删除API(至少)不允许32位应用程序在64位Windows上调用它们 - API将失败,并显示,如 MSDN上所述。此外,属性中还有一个“资源”选项卡,[该选项卡]不会在 WOW64 下加载。我还没有彻底测试 WOW64 上的其他功能,但最重要的是,您需要大量的变通方法和技巧才能在 VB6 中完成相同的任务,因为 WOW64 不允许大部分硬件设置功能。SetupDiCallClassInstaller
ERROR_IN_WOW64
以下是 AI 生成的项目概要:
DevExplorer 是一个成熟的设备管理应用程序,类似于使用 twinBASIC 创建的本机 Windows 设备管理器。该项目最初旨在测试设备启用/禁用功能,后来发展成为一个综合工具,具有一套功能,可有效管理系统设备。
- 设备管理:用户可以直接从应用程序中启用/禁用、删除、卸载、更新驱动程序或弹出设备。
- 隐藏设备:它能够列出已安装但当前不存在于系统中的“隐藏设备”。
- 问题指示器:应用程序使用覆盖图标(类似于本机设备管理器)指示有问题的设备,并从系统中获取问题描述。
- 设备属性:双击设备会打开其属性,并包含一个专用的“资源”选项卡,该选项卡在 WOW64 下无法访问。
- 更新驱动程序向导:简化更新设备驱动程序的过程。
- 管理权限:大多数功能都需要以管理员身份运行应用,使其能够执行各种操作。
该项目利用本文前面概述的 WinDevLib 包来弥合 32 位和 64 位环境之间的差距。WinDevLib 也由 Jon Johnson (fafalone) 创建,它提供了必要的 Windows API 功能,以确保 DevExplorer 可以跨不同的体系结构有效运行。
DevExplorer 旨在为设备管理提供一个简单的解决方案,提供一种可以轻松集成到开发人员工作流程中的工具。它继承了 WinDevLib 的综合 API 集,使其能够与系统设备和资源进行交互,其深度和控制级别与本机 Windows 应用程序相同。
DevExplorer 结合了 twinBASIC 的 Intellisense 的最新改进,并利用了 WinDevLib 的 64 位兼容性,被定位为希望在各种版本的 Windows 操作系统上管理设备的开发人员的实用工具。它展示了twinBASIC在现代计算基础设施中更新和维护传统软件的潜力。
这就是我在 twinBASIC Discord 中忽略 Show-and-Tell 频道的更新,然后去度假一周所得到的。这是 fafalone 的另一个新项目,这个项目是与 Windows 图像处理组件交互的 VB6 演示的直接移植。
以下是通过 VBForums 对原始 VB6 演示的介绍:
引言
自 Vista 以来,Windows 映像组件就包含在 Windows 中,但是在 VB 中没有简单的方法可以使用它,尤其是由于许多不兼容的变量和指针类型。现在,我已将这些接口转换为与 VB 一起使用,并将它们添加到我的现代 Shell 接口类型库中(在 2019 年 10 月 20 日发布的 4.62 版中添加)。
本项目提供了一个基本的介绍。您可以加载 JPG、PNG、GIF、BMP、TIF 或 ICO 类型的文件;然后缩放它(或不缩放 - 您可以跳过缩放,只需将其保存为新格式)并将其转换为PNG或JPG。JPG支持设置图像质量的百分比(它将出现在“另存为...”对话框中)。
以下是通过 Discord 对 twinBASIC 移植的介绍:
以为我会看看我的WIC演示是否在tB中工作。很高兴地报告VB6项目的初始导入工作完美无缺。从那里我重写了 64 位。认为值得注意的是 WinDevLib API 模块使这一点变得多么容易: 我没有检查和更新所有 Win API 定义,而是将它们注释掉,让 WinDevLib 接管这些定义,除了从 oleexp 接管 COM 接口。在一个小问题(WinDevLib.IStream 中的重大错误,现已修复)之后,需要修改的只是删除一些 oleexp。限定符,将 GetObject 切换到 GetObjectW,因为内部版本获得优先级,并将句柄/指针更改为 LongPtr。
前往 Discord show-and-tell 频道下载文件以及包含原始 VB6 项目和未修改的 tB 导入的 zip 文件。.twinproj
以下是过去一周的更新。您还可以通过访问 GitHub twinBASIC 版本页面来查找此信息。