QuickBASIC QB64 支持 64 位系统和跨平台Linux/MAC OS

QuickBASIC 的现代继任者 QB64 已发展成为一个功能强大的开源项目,支持 64 位系统和跨平台开发。以下是详细介绍:

项目首页 - QB64pe:The QB64 Phoenix Edition Repository - GitCode
https://gitcode.com/gh_mirrors/qb/QB64pe

1. QB64 概述

  • 官网qb64.org
  • 开源许可:GPLv3
  • 特点
    • 兼容 QuickBASIC 4.5 语法,同时支持现代扩展(如面向对象、GUI)。
    • 编译为原生 64 位可执行文件,性能接近 C 语言。
    • 内置图形库支持高分辨率显示和硬件加速。

2. 开源与跨平台支持

3. 在 Linux 上运行 QB64

方法一:使用 Wine 运行 Windows 版本
  1. 安装 Wine: bash

    复制代码
    sudo apt-get install wine
  2. 下载 QB64 Windows 安装包并运行: bash

    复制代码
    wine QB64-win64-installer.exe
  3. 通过 Wine 启动 QB64 编辑器。

方法二:编译原生 Linux 版本
  1. 安装依赖: bash

    复制代码
    sudo apt-get install build-essential libsdl2-dev libsdl2-image-dev libsdl2-mixer-dev libsdl2-ttf-dev
  2. 从源码编译: bash

    复制代码
    git clone https://github.com/QB64-Phoenix-Edition/QB64pe.git
    cd QB64pe
    make linux
  3. 运行生成的 qb64 可执行文件。

4. Linux 下的 GUI 编程示例

QB64 的 GUI 功能通过内置的 SDL2 库实现,支持窗口、按钮、文本框等控件。以下是一个简单示例:

basic

复制代码
' Linux 下的 QB64 GUI 示例
SCREEN _NEWIMAGE(800, 600, 32)

' 创建窗口
DIM window AS _WINDOW
window = _CREATEWINDOW("QB64 GUI 示例", 100, 100, 600, 400)

' 创建按钮
DIM button AS _HANDLE
button = _CREATEBUTTON("点击我", 250, 180, 100, 30, window)

' 创建文本框
DIM textbox AS _HANDLE
textbox = _CREATETEXTBOX("输入文本...", 200, 250, 200, 30, window)

' 消息循环
DO
    event = _GETEVENT
    SELECT CASE event
        CASE _BUTTONPRESSED
            IF _HANDLE = button THEN
                PRINT "按钮被点击!"
                _SETTEXT textbox, "按钮已点击"
            END IF
        CASE _WINDOWCLOSE
            IF _HANDLE = window THEN EXIT DO
    END SELECT
    _LIMIT 60
LOOP

_CLOSEWINDOW window
END

5. 注意事项

  • 性能:原生 Linux 版本通常比 Wine 版本更快。
  • 依赖库 :确保系统已安装 SDL2 相关库(如 libsdl2-dev)。
  • 兼容性:部分 Windows 特有的 QB64 扩展(如 DirectX)可能在 Linux 上受限。

6. 资源与社区

总结

QB64 是 QuickBASIC 的优秀开源继任者,完全支持 Linux 平台。你可以通过 Wine 运行 Windows 版本,或编译原生 Linux 版本,实现跨平台的 64 位 GUI 编程。其语法保持了 QuickBASIC 的简洁性,同时融入了现代编程特性,适合新手和怀旧开发者使用。

相关推荐
峥无2 分钟前
Linux系统编程基石:静态库·动态库·ELF文件·进程地址空间全景图
linux·运维·服务器
用户23678298016811 分钟前
从 chmod 755 说起:Unix 文件权限到底是怎么算的?
linux
码云数智-大飞16 分钟前
本地部署大模型:隐私安全与多元优势一站式解读
运维·网络·人工智能
Strugglingler17 分钟前
【systemctl 学习总结】
linux·systemd·systemctl·journalctl·unit file
Harvy_没救了1 小时前
【网络部署】 Win11 + VMware CentOS8 + Nginx 文件共享服务 Wiki
运维·网络·nginx
春风有信2 小时前
【2026.05.01】Windows10安装Docker Desktop 4.71.0.0步骤及问题解决
运维·docker·容器
嵌入式×边缘AI:打怪升级日志2 小时前
100ASK-T113 Pro 开发板 Bootloader 完全开发指南
linux·ubuntu·bootloader
lzhdim2 小时前
SQL 入门 12:SQL 视图:创建、修改与可更新视图
java·大数据·服务器·数据库·sql
2401_873479402 小时前
断网时如何实时判断IP归属?嵌入本地离线库,保障风控不中断
运维·服务器·网络
守城小轩3 小时前
基于Chrome140的Yahoo自动化(关键词浏览)——需求分析&环境搭建(一)
运维·自动化·chrome devtools·浏览器自动化·指纹浏览器·浏览器开发