请输入您要查询的百科知识:

 

词条 QB64
释义

  1. History

  2. Syntax

  3. Extensions to QBASIC

  4. Libraries

  5. References

  6. External links

{{Infobox programming language
| logo = Qb64 logo.png
| logo alt = The QB64 logo
| released = {{Start date and age|2007}}
| developer = Galleon, QB64Team
| license = LGPLv2.1
| website = {{url|www.qb64.org}}
| latest_release_version = 1.2
| latest_release_date = {{Start date and age|2017|12|30}}
| influenced_by = QuickBASIC, QBASIC
| operating_system = Microsoft Windows, Linux, macOS
}}{{Portal|Free and open-source software}}QB64 (originally QB32)[1] is a self-hosting BASIC compiler for Microsoft Windows, Linux and Mac OS X, designed to be compatible with Microsoft QBasic and QuickBASIC. QB64 is a C++ emitter, which is integrated with a C++ compiler to provide compilation via C++ code and GCC optimization.[2]

QB64 implements most QBasic statements, and can run many QBasic programs, including Microsoft's QBasic Gorillas and Nibbles games.[3] Furthermore, QB64 has been designed to contain an IDE resembling the QBASIC IDE. QB64 also extends the QBASIC programming language to include 64-bit data types, as well as better sound and graphics support. It can also emulate some DOS/x86 specific features such as INT 33h mouse access, and multiple timers.

History

QB64 was originally compiled with QuickBASIC 4.5. After significant development, Rob Galleon, the developer, became hindered by QuickBASIC's memory limitations and switched to Microsoft Basic PDS 7.1, which solved these problems for a short time. After version 0.63, QB64 was able to compile itself so the conventional memory limitations no longer applied.

Syntax

QB64's syntax is designed to be completely backwards compatible with QuickBASIC. Line numbers are not required, and statements are terminated by newlines or separated by colons (:).

An example Hello, World program is:

PRINT "Hello, World!"

An example of QB64's emulation of VGA memory for compatibility:

CLS

S$ = "Hello, World!"

DEF SEG = &HB800 'sets the segment to video memory

FOR I = 1 TO LEN(S$)

NEXT

DEF SEG 'reset the segment to default

An example of how QB64 allows audio files:

sound_effect& = _SNDOPEN("sound.wav") 'WAV, OGG or MP3

_SNDPLAY sound_effect&

An example of how QB64 allows picture files:

SCREEN _NEWIMAGE(800, 600, 32) 'creates a 32-bit screen

imagename& = _LOADIMAGE("image__name.png") 'BMP, JPG, PNG, etc.

_PUTIMAGE (0, 0), imagename&

_FREEIMAGE imagename& 'release assigned memory

An example of how QB64 uses multiple timers:

t1 = _FREETIMER

t2 = _FREETIMER

ON TIMER(t1, 1) GOSUB Timer.Trap 'the code following the Timer.Trap label will be run every 1 second

ON TIMER(t2, .5) mySub 'QB64 can also trigger a SUB procedure with TIMER;

' in this case mySUB will be triggered every 500 milliseconds

'activate timers:

TIMER(t1) ON

TIMER(t2) ON

DO 'go into an infinite loop until the window is closed

LOOP

Timer.Trap:

PRINT "1s; ";

RETURN

SUB mySub

END SUB

Extensions to QBASIC

QB64's extended commands begin with an underscore in order to avoid conflicts with any names that may be used in a QuickBASIC program.

QB64 extends the QuickBASIC language in several ways. It adds the new data types including _BIT, _BYTE, _INTEGER64 and _FLOAT as well as unsigned data types. The new data types have suffixes just like the traditional BASIC data types. QB64 also includes an audio library which allows playing most common audio formats including MP3, Ogg Vorbis, and WAV files as well as libraries allowing users to use higher resolution graphics than the 640×480 offered by QuickBASIC,[4] use different fonts, and plot images in BMP, PNG, and JPEG format. It also allows the use of 32-bit colors as opposed to the limited 256 (or 16, depending) colors originally offered.

The programmer also does not have to specify which programming libraries to include since QB64 does it automatically. The programmer has the option to include a library of their own through the $INCLUDE command just as QuickBASIC did.

Libraries

As of version 0.954, the SDL version of QB64 has been discontinued. The current (and future) versions of QB64 integrate FreeGLUT for its graphics and text.

A development branch of the repository hosted on GitHub is frequently updated with fixes and improvements, which will eventually become the next stable release. The development builds are also offered via the official website for users to beta test.

QB64 can also use DLL libraries for Windows, C++ and SDL functions and statements with a DECLARE LIBRARY block. Users can also access C header files to run C functions.

References

1. ^{{cite web|url=http://www.basicprogramming.org/pcopy/issue50/#inthenews|work=PCOPY! Issue #50|title=In The News|date=2007-11-16|accessdate=2008-08-17|author=Stephane Richard|publisher=Basic Programming|archiveurl=https://web.archive.org/web/20091221084037/http://www.basicprogramming.org/pcopy/issue50/#inthenews|archivedate=2009-12-21}}
2. ^{{cite web|url=http://www.basicprogramming.org/pcopy/issue70/#galleoninterview|work=PCOPY! Issue #70|title=Interview With Galleon|date=2008-05-26|accessdate=2008-07-14|author=E.K.Virtanen|publisher=Basic Programming|archiveurl=https://web.archive.org/web/20080821183950/http://www.basicprogramming.org/pcopy/issue70/#galleoninterview|archivedate=2008-08-21}}
3. ^{{cite web|url=http://www.qb64.net/gallery/main.php?g2_itemId=15|title=QB64 Screenshots - QB64/QBASIC Gorillas in QB64|date=|accessdate=2010-07-27|author=|publisher=}}
4. ^{{cite web|url=http://www.qbasicnews.com/qboho/qckadvr.m111213.shtml|title=QB Advisor: Screen Modes 11, 12, and 13|year=1988|accessdate=2008-07-25|author=|publisher=Microsoft Corporation}}

External links

  • {{official website}}
  • {{github|Galleondragon/qb64}}
{{BASIC}}

7 : BASIC compilers|Free compilers and interpreters|MacOS programming tools|Programming tools for Windows|Linux programming tools|Articles with example BASIC code|2007 software

随便看

 

开放百科全书收录14589846条英语、德语、日语等多语种百科知识,基本涵盖了大多数领域的百科知识,是一部内容自由、开放的电子版国际百科全书。

 

Copyright © 2023 OENC.NET All Rights Reserved
京ICP备2021023879号 更新时间:2024/9/22 14:43:35