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. 開源與跨平臺支持

  • 開源代碼:在 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)' 消息循環
DOevent = _GETEVENTSELECT CASE eventCASE _BUTTONPRESSEDIF _HANDLE = button THENPRINT "按鈕被點擊!"_SETTEXT textbox, "按鈕已點擊"END IFCASE _WINDOWCLOSEIF _HANDLE = window THEN EXIT DOEND 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.pswp.cn/news/908090.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/908090.shtml
英文地址,請注明出處:http://en.pswp.cn/news/908090.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【C++高級主題】命令空間(五):類、命名空間和作用域

目錄 一、實參相關的查找(ADL):函數調用的 “智能搜索” 1.1 ADL 的核心規則 1.2 ADL 的觸發條件 1.3 ADL 的典型應用場景 1.4 ADL 的潛在風險與規避 二、隱式友元聲明:類與命名空間的 “私密通道” 2.1 友元聲明的基本規則…

免費開源Umi-OCR,離線使用,批量精準!

Umi-OCR(Windows端) Umi-OCR 是一款在 GitHub 上開源的免費 OCR 識別軟件,它最大的亮點就是免費、開源、支持批量處理,而且識別準確度很高。這款軟件不需要聯網就能用,非常值得推薦! 在 OCR 識別功能方面&…

深入剖析 Docker 容器化原理與實戰應用,開啟技術新征程!

文章目錄 前言一、為什么 是Docker ?二、Docker 容器化原理分析2.1 鏡像(Image)2.2 容器(Container)2.3 倉庫(Registry) 三、Docker 容器化實踐3.1 Docker安裝3.2 創建一個 Docker 鏡像3.3 運行…

黑馬程序員TypeScript課程筆記—class篇

class的基本使用 class的構造函數(實現實例屬性的初始化) 在使用構造函數的時候,小括號的后面不要指定類型,否則就會報錯,因為構造函數沒有返回值 class實例方法 class繼承(extends) class繼承…

PDF.js無法顯示數字簽名

問題 pdfjs加載pdf文件時無法顯示數字簽名 PDF.js 從 v2.9.359 版本開始正式支持數字簽名的渲染與顯示,此前版本需通過修改源代碼實現基礎兼容。 建議升級pdfjs組件大于等于v2.9.359 pdfjs歷史版本:https://github.com/mozilla/pdf.js/releases pdfjs…

解決VS Code誤報Java問題的終極方法

使用vscode寫java,發現很多Problems,如下圖,實際上并沒有問題,是誤報,怎么解決? 解決方案:disable下面這個插件,它和vscode-java插件沖突了導致。

【WPF】從普通 ItemsControl 到支持篩選的 ItemsControl:深入掌握 CollectionViewSource 用法

? 從普通 ItemsControl 到支持篩選的 ItemsControl:深入掌握 CollectionViewSource 用法 在日常 WPF 開發中,我們經常需要對數據進行篩選、排序、分組等操作,而原生的 ItemsControl 并不直接支持這些功能。本文將介紹如何通過 CollectionVi…

Mybatis Plus JSqlParser解析sql語句及JSqlParser安裝步驟

MyBatis Plus與JSqlParser:SQL語句解析與實戰指南 在現代Java開發中,SQL解析和動態SQL生成是數據庫操作中不可或缺的一部分。MyBatis Plus作為MyBatis的增強工具,通過JSqlParser庫實現了對SQL語句的深度解析和修改能力。本文將詳細介紹如何在…

學習路之PHP--easyswoole使用視圖和模板

學習路之PHP--easyswoole使用視圖和模板 一、安裝依賴插件二、 實現渲染引擎三、注冊渲染引擎四、測試調用寫的模板五、優化六、最后補充 一、安裝依賴插件 composer require easyswoole/template:1.1.* composer require topthink/think-template相關版本: "…

設計模式——享元設計模式(結構型)

摘要 享元設計模式是一種結構型設計模式,旨在通過共享對象減少內存占用和提升性能。其核心思想是將對象狀態分為內部狀態(可共享)和外部狀態(不可共享),并通過享元工廠管理共享對象池。享元模式包含抽象享…

互聯網大廠Java求職面試:云原生微服務架構設計與AI大模型集成實戰

互聯網大廠Java求職面試:云原生微服務架構設計與AI大模型集成實戰 面試場景設定 人物設定: 李明(技術總監):擁有15年分布式系統架構經驗,主導過多個億級用戶系統的重構,對云原生和AI融合有深…

nginx+tomcat動靜分離、負載均衡

一、理論 nginx用于處理靜態頁面以及做調度器,tomcat用于處理動態頁面 lvs(四層) 輪詢(rr) 加權輪詢(wrr) 最小連接(lc) 加權最小連接(wlc) ngi…

什么是AI芯片?

首先,我們要了解一下:什么是芯片?芯片的本質就是在半導體襯底上制作能實現一系列特定功能的集成電路。 其次,來看一下AI的概念。AI是研究如何使計算機能夠模擬和執行人類智能任務的科學和技術領域,致力于開發能夠感知…

PostgreSQL數據庫配置SSL操作說明書

背景: 因為postgresql或者mysql目前通過docker安裝,只需要輸入主機IP、用戶名、密碼即可訪問成功,這樣其實是不安全的,可能會通過一些手段獲取到用戶名密碼導致數據被竊取。而ES、kafka等也是通過用戶名/密碼方式連接,…

k8s更新證書

[rootk8s-master01 ~]# sudo kubeadm certs renew all [renew] Reading configuration from the cluster… [renew] FYI: You can look at this config file with ‘kubectl -n kube-system get cm kubeadm-config -o yaml’ certificate embedded in the kubeconfig file for…

正點原子lwIP協議的學習筆記

正點原子lwIP協議的學習筆記 正點原子lwIP學習筆記——lwIP入門 正點原子lwIP學習筆記——MAC簡介 正點原子lwIP學習筆記——PHY芯片簡介 正點原子lwIP學習筆記——以太網DMA描述符 正點原子lwIP學習筆記——裸機移植lwIP 正點原子lwIP學習筆記——裸機lwIP啟動流程 正點…

MongoTemplate常用api學習

本文只介紹常用的api,盡量以最簡單的形式學會mongoTemplate基礎api的使用 一、新增 主要包含三個api:insert(一個或遍歷插多個)、insertAll(批量多個)、save(插入或更新) //這里簡…

006網上訂餐系統技術解析:打造高效便捷的餐飲服務平臺

網上訂餐系統技術解析:打造高效便捷的餐飲服務平臺 在數字化生活方式普及的當下,網上訂餐系統成為連接餐飲商家與消費者的重要橋梁。該系統以菜品分類、訂單管理等模塊為核心,通過前臺展示與后臺錄入的分工協作,為管理員和會員提…

網絡攻防技術五:網絡掃描技術

文章目錄 一、網絡掃描的基礎概念二、主機發現三、端口掃描1、端口號2、端口掃描技術3、端口掃描隱秘策略 四、操作系統識別五、漏洞掃描六、簡答題1. 主機掃描的目的是什么?請簡述主機掃描方法。2. 端口掃描的目的是什么?請簡述端口掃描方法及掃描策略。…

生成JavaDoc文檔

生成 JavaDoc 文檔 1、快速生成 文檔 注解 2、常見的文檔注解 3、腳本生成 doc 文檔 4、IDEA工具欄生成 doc 文檔 第一章 快速入門 第01節 使用插件 在插件工具當中,找到插件 javaDoc 使用方式,在代碼區域,直接點擊右鍵。選擇 第02節 常用注…