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

news2025/6/4 23:51:34

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. 开源与跨平台支持

  • 开源代码:在 GitHub 上公开(github.com/QB64-Phoenix-Edition/QB64pe)。
  • 跨平台支持
    • Windows(32/64 位)
    • Linux(通过 Wine 或原生编译)
    • macOS
    • Raspberry Pi

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. 资源与社区

  • 官方论坛:forum.qb64.org
  • 文档:qb64.com/docs
  • 教程:YouTube 上有大量 QB64 编程教程。

总结

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2396939.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ElasticSearch迁移至openGauss

Elasticsearch 作为一种高效的全文搜索引擎,广泛应用于实时搜索、日志分析等场景。而 openGauss,作为一款企业级关系型数据库,强调事务处理与数据一致性。那么,当这两者的应用场景和技术架构发生交集时,如何实现它们之…

【C语言极简自学笔记】项目开发——扫雷游戏

一、项目概述 1.项目背景 扫雷是一款经典的益智游戏,由于它简单而富有挑战性的玩法深受人们喜爱。在 C 语言学习过程中,开发扫雷游戏是一个非常合适的实践项目,它能够综合运用 C 语言的多种基础知识,如数组、函数、循环、条件判…

Maven概述,搭建,使用

一.Maven概述 Maven是Apache软件基金会的一个开源项目,是一个有优秀的项目构建(创建)工具,它用来帮助开发者管理项目中的jar,以及jar之间的依赖关系,完成项目的编译,测试,打包和发布等工作. 我在当前学习阶段遇到过的jar文件: MySQL官方提供的JDBC驱动文件,通常命名为mysql-…

Unity 环境搭建

Unity是一款游戏引擎,可用于开发各种类型的游戏和交互式应用程序。它由Unity Technologies开发,并在多个平台上运行,包括Windows、macOS、Linux、iOS、Android和WebGL。Unity也支持虚拟现实(VR)和增强现实(AR)技术,允许用户构建逼…

【入门】【练9.3】 加四密码

| 时间限制:C/C 1000MS,其他语言 2000MS 内存限制:C/C 64MB,其他语言 128MB 难度:中等 分数:100 OI排行榜得分:12(0.1*分数2*难度) 出题人:root | 描述 要将 China…

使用 SASS 与 CSS Grid 实现鼠标悬停动态布局变换效果

最终效果概述 页面为 3x3 的彩色格子网格;当鼠标悬停任意格子,所在的行和列被放大;使用纯 CSS 实现,无需 JavaScript;利用 SASS 的模块能力大幅减少冗余代码。 HTML 结构 我们使用非常基础的结构,9 个 .i…

Spring如何实现组件扫描与@Component注解原理

Spring如何实现组件扫描与Component注解原理 注解配置与包扫描的实现机制一、概述:什么是注解配置与包扫描?二、处理流程概览三、注解定义ComponentScope 四、核心代码结构1. ClassPathScanningCandidateComponentProvider2. ClassPathBeanDefinitionSca…

达梦数据库 Windows 系统安装教程

🧑 博主简介:CSDN博客专家、CSDN平台优质创作者,高级开发工程师,数学专业,10年以上C/C, C#, Java等多种编程语言开发经验,拥有高级工程师证书;擅长C/C、C#等开发语言,熟悉Java常用开…

【Java EE初阶】计算机是如何⼯作的

计算机是如何⼯作的 计算机发展史冯诺依曼体系(Von Neumann Architecture)CPU指令(Instruction)CPU 是如何执行指令的(重点) 操作系统(Operating System)进程(process) 进程 PCB 中的…

RAG理论基础总结

目录 概念 流程 文档收集和切割 读取文档 转换文档 写入文档 向量转换和存储 搜索请求构建 向量存储工作原理 向量数据库 文档过滤和检索 检索前 检索 检索后 查询增强和关联 QuestionAnswerAdvisor查询增强 高级RAG架构 自纠错 RAG(C-RAG&#xf…

列表推导式(Python)

[表达式 for 变量 in 列表] 注意:in后面不仅可以放列表,还可以放range ()可迭代对象 [表达式 for 变量 in 列表 if 条件]

一天搞懂深度学习--李宏毅教程笔记

目录 1. Introduction of Deep Learning1.1. Neural Network - A Set of Function1.2. Learning Target - Define the goodness of a function1.3. Learn! - Pick the best functionLocal minimaBackpropagation 2. Tips for Training Deep Neural Network3. Variant of Neural…

python打卡训练营打卡记录day43

复习日 作业: kaggle找到一个图像数据集,用cnn网络进行训练并且用grad-cam做可视化 进阶:并拆分成多个文件 数据集来源:Flowers Recognition 选择该数据集原因: 中等规模:4242张图片 - 训练快速但足够展示效…

【QT控件】QWidget 常用核心属性介绍 -- 万字详解

目录 一、控件概述 二、QWidget 核心属性 2.1 核心属性概览 2.2 enabled ​编辑 2.3 geometry 2.4 windowTitle 2.5 windowIcon 使用qrc文件管理资源 2.6 windowOpacity 2.7 cursor 2.8 font ​编辑 2.9 toolTip 2.10 focusPolicy 2.11 styleSheet QT专栏&…

uniapp-商城-77-shop(8.2-商品列表,地址信息添加,级联选择器picker)

地址信息,在我们支付订单上有这样一个接口,就是物流方式,一个自提,我们就显示商家地址。一个是外送,就是用户自己填写的地址。 这里先说说用户的地址添加。需要使用到的一些方式方法,主要有关于地址选择器,就是uni-data-picker级联选择。 该文介绍了电商应用中地址信息处…

【第16届蓝桥杯 | 软件赛】CB组省赛第二场

个人主页:Guiat 归属专栏:算法竞赛 文章目录 A. 密密摆放(5分填空题)B. 脉冲强度之和(5分填空题)C. 25 之和D. 旗帜E. 数列差分F. 树上寻宝G. 翻转硬币H. 破解信息 正文 总共8道题。 A. 密密摆放&#xff0…

AR/MR实时光照阴影开发教程

一、效果演示 1、PICO4 Ultra MR 发光的球 2、AR实时光照 二、实现原理 PICO4 Ultra MR开发时,通过空间网格能力扫描周围环境,然后将扫描到的环境网格材质替换为一个透明材质并停止扫描;基于Google ARCore XR Plugin和ARFoundation进行安卓手…

【汽车电子入门】一文了解LIN总线

前言:LIN(Local Interconnect Network)总线,也就是局域互联网的意思,它的出现晚于CAN总线,于20世纪90年代末被摩托罗拉、宝马、奥迪、戴姆勒、大众以及沃尔沃等多家公司联合开发,其目的是提供一…

【笔记】为 Python 项目安装图像处理与科学计算依赖(MINGW64 环境)

📝 为 Python 项目安装图像处理与科学计算依赖(MINGW64 环境) 🎯 安装目的说明 本次安装是为了在 MSYS2 的 MINGW64 工具链环境中,搭建一个完整的 Python 图像处理和科学计算开发环境。 主要目的是支持以下类型的 Pyth…

智能守护电网安全:探秘输电线路测温装置的科技力量

在现代电力网络的庞大版图中,输电线路如同一条条 “电力血管”,日夜不息地输送着能量。然而,随着电网负荷不断增加,长期暴露在户外的线路,其线夹与导线在电流热效应影响下,极易出现温度异常。每年因线路过热…