As with everything else, this list will be updated to correspond to new progress of QB64 so make sure that you are using the latest version of '''QB64'''. Please note that it may take a short time to update this list.
<center>'''{{text|It's recommended to exclude (whitelist) "qb64.exe" (also the ''internal'' folder) from any real-time anti-virus scanning to prevent IDE Module Errors.|red}}'''</center>
A: '''QB64''' is a BASIC compatible Editor and C++ emitter that creates working Executable files from QBasic BAS files that can be run on 32 or 64 bit PC's using '''Windows''' (XP to 10), '''Linux''' or '''macOS'''. The goal is to be 100% compatible with QuickBASIC 4.5 plus add hundreds of new abilities such as program icons and custom sized windows and a great retro Editor with builtin help.
The '''new keywords''' add some '''new features''' such as playing '''music or sound''' files and instant access to '''32 bit graphics''' file images. Also '''TCP/IP''' internet communication is available to '''download''' files, '''email''' messages over the web or play '''internet games'''. '''DLL Libraries''' can add more programming options and QB64 can access all of the new USB gaming '''controllers''' and '''printers'''.
QB is an abbreviation for '''QBasic''' or '''QuickBASIC''' which is an easy to learn language that grew very popular in the 90's. It uses simple syntax but holds great potential as there are methods to achieve nearly anything. '''QBasic is more alive than ever with QB64!'''
A: QB64 has plenty of modern features, but they do not have to be used. You may just want to run some of your old favorites.
<center>'''QB64 was created to run your old QBasic 4.5 (or less) programs on newer Operating Systems without any changes.'''</center>
You could code using the original QuickBASIC syntax all the way through and it should work as you expect it to or even better. QB64 is often faster and has none of the memory limitations that plagued QBasic in the past.
:'''2)''' Unpack the contents to any location on your computer. Avoid unpacking to Program Files or other system folders that may require administrative privileges. QB64 needs to have full write permissions to its own folder.
:'''1)''' Download the appropriate package according to your system from [http://www.qb64.org QB64.org]
:'''2)''' After extracting the downloaded package, run the installation batch/script called ''./setup_lnx.sh'' in the main ''qb64'' folder to setup QB64.
:'''3)''' Most dependencies should be automatically downloaded by the setup script, but these are the ones you should look for if compilation fails: OpenGL developement libraries, ALSA development libraries, GNU C++ Compiler (g++)
:'''1)''' You must install Apple's '''Xcode command line tools''' for C++ compilation from their website. The simplest way to do so is opening a terminal window and typing the following command: '''xcode-select --install''' (more info here: [http://developer.apple.com/technologies/tools/xcode.html Xcode download])
<center>[[Keywords_currently_not_supported_by_QB64#Keywords_Not_Supported_in_Linux_or_macOS_versions|Keywords Not Supported in Linux or macOS versions]]</center>
A: There are some things that QB64 cannot do, like direct hardware access, which makes older more advanced programs that make use of [[ABSOLUTE]], [[INTERRUPT]], [[PEEK]], [[POKE]] and [[OUT]] not work properly. Although some older functionality is emulated, if your program doesn't use such statements you probably won't notice any difference between QB 4.5 and QB64 (and if you do, report it as a bug in the forums). You can expect the most common addresses for interrupts, etc. to be functioning.
You should be careful with '''CPU usage'''. QB64 is a lot faster than QBasic was and it does not have many of the size limitations that confined QBasic programming abilities. Having said that, '''care must be taken to assure that programs do not hog resources.''' To do that, use speed limits when possible to keep the resources used to a minimum. Also, '''Monitor Task Manager''' when your programs are running, as it can tell you how much or system resources are being used in different parts of a program. The following keywords can lower the impact of your programs on those resources by releasing them to other programs:
QB64 can be fast when you need it to be, but take the time to consider the impact of your program on other programs as people seldom have only one program running and the OS has tasks it must do too.
A: The help provided in the QB64 IDE Help System fetches the pages from this wiki. Use the '''Update current page''' in the IDE Help menu selection to update a page. Use the '''Update all pages''' choice to update them all, but this may take longer.
A: If the libraries are pure QB 4.5 code then yes, otherwise no. QLB files are not supported but you can easily copy your favorite SUBs or FUNCTIONs to a text BI file and [[$INCLUDE]] them at the end of any program. Include them after all SUB and FUNCTION code in the BAS file.
[[DECLARE LIBRARY]] allows users to reference C, Windows, OpenGL and other DLL libraries. If you find some functions that you like please share them with us at the forum! The following pages list working functions our members have found and tested:
A: QB64 is 99% compatible with QB4.5 programs. The commands that haven't been implemented are either obsolete or are too obscure and have been replaced by modern functionality.
*'''QB64 -x yourfile.BAS''' ''(compiles using the console only)''
*'''QB64 -c yourfile.BAS -o destination_path\destination executable_name.exe''' ''(compiles the .BAS file and outputs the executable to a separate folder)''
A: QB64 allows you to [[$INCLUDE]] code or BAS modules into one module when it is compiled. Text .BI files containing SUB or FUNCTION code or entire BAS modules can be included in one module that will be compiled.
After the EXE is compiled, you do not have to even use the added code anymore. The EXE will contain ALL of the program code as ONE stand-alone program. This also allows you to add SUB code to any program that you desire.
==Q: Does QB64 support CURRENCY values from PDS or VB programs?==
A: Not directly, but [[_FLOAT]] currency values up to 4 decimal places can be multiplied by 10000(10 ^ 4) and converted to MKC$ string values using [[_MK$]] with an [[_INTEGER64]] value. [[_CV]] with an [[_INTEGER64]] value divided by 10000 converts it back to [[_FLOAT]] values.
[[PUT]] can write a PDS or VB, 8 byte currency string by multiplying the currency amount by 10000 and using an [[_INTEGER64]] variable.
[[GET]] can read a [[_FLOAT]] CURRENCY value as an [[INTEGER64]] variable value divided by 10000.