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 (version 1.1 released in 1/20/17)'''. Please note that it may take a short time to update this list.
<center>'''{{text|It's a good idea to exclude "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++ compiler that creates working Executable files from Qbasic BAS files that can be run on 32 or 64 bit PC's using '''WINDOWS'''(XP, Vista and newer), '''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 [[IDE|Editor]] with a new Help Menu.
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 NOT DEAD thanks to QB64!'''
==Q: Does it have modern features? Do they HAVE to be used?==
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! Give it try! See for yourself.
<center> '''For incompatibility issues you can look in the QB64 "Discussion" board here:'''</center>
<center>[http://www.qb64.net/forum/index.php Visit the QB64 Community Forum]</center>
<center>'''Some members can still run QB4.5 programs so we can test problem code!'''</center>
<center>'''If your program(s) don't work correctly(check your code first) please feel free to post in the "Discussion" board.'''</center>
Galleon is constantly working on pure compatibility. You don't have to set it up differently to use the modern features as they are made to work alongside original QB code seamlessly (unlike FreeBASIC and any other modern BASIC out there). The modern statements are designed to go along with the BASIC philosophy and expand Qbasic into the future!
<center>'''QB64 FEATURES INCLUDE...'''</center>
<center>[http://www.qbasicnews.com/dav/files/qb64v942-win2k-fix.zip Download ZIP FIX for Windows 2000 if QB64 does not run correctly!]</center>
<center>This download fix will be updated when necessary by Dav</center>
:'''2)''' You will need the following installed: OpenGL developement libraries, ALSA development libraries, GNU C++ Compiler (g++)
:'''3)''' After extracting the downloaded package, run the installation batch/script called ''setup_lnx.sh'' in the main ''qb64'' folder to setup QB64.
:'''4)''' It is not advisable to install QB64 as root.
:'''1)''' You MUST install '''Xcode command line tools''' for C++ compilation from their website. In a terminal window, type the following command: '''xcode-select --install''' (more info here: [http://developer.apple.com/technologies/tools/xcode.html Xcode download])
:* To help launch executables without a console, a file called ''programname_start.command'' is created along with the program.
<center>'''Note: Some QB64 keywords and procedures are not available as of this MAC release.'''</center>
<center>[[Keywords_currently_not_supported_by_QB64#Keywords_Not_Supported_in_Linux_or_MAC_OSX_versions|Keywords Not Supported in Linux or MAC OSX versions]]</center>
<center>'''References to Android in QB64 refer to the Android Experiment. More information here: [http://www.qb64.net/forum/index.php?topic=13162.0 Android QB64] (may be outdated/non-functional)'''</center>
==Q:The setup scripts don't work in Linux and macOS. How can I fix them?==
A: If you have problems running the install scripts under Linux (./setup_lnx.sh) or macOS (./setup_osx.command), run the following line in terminal, from your QB64 folder:
# Download the version of QB64 which you want to transform into a 64-bit version from THE QB64 OFFICIAL WEBSITE.
# Grab a pre-edited copy of the 64-bit mingw compiler. You can find it here, [https://www.dropbox.com/s/gapnz7m22yc0mlv/QB64%2064-bit%20mingw%20compiler%20%2808-01-2017%29%20PRE-EDITED.7z?dl=0 QB64 64-bit mingw compiler (08-01-2017) PRE-EDITED], stored permanently in [[User:SMcNeill |Steve McNeill]]'s Dropbox account.
# Extract the QB64 file wherever you want it to be on your system.
# Go into the folder where you installed QB64 and head to the '''internal/c/c_compiler''' folder.
# Delete everyone of those files and folders.
# Extract the mingw 64-bit compiler into that folder. You're looking to replace the old contents with the new contents. Watch for nesting a folder inside a folder by accident.
# Go into the main QB64 directory, look for setup_win.bat. If it's not there, grab the download for it from below and put it into the main folder. (I don't think the archives at qb64.net has the file included in it, though if you download from the repo directly, you can find it. It's kind of a developer tool, moreso than something an user needs cluttering up their directory structure.)
# Run that setup_win.bat file. If everything is extracted to the proper places, you should build and have a version of QB64 open up where the title screen now reads "QB64x64". Congrats!! You now have a working, 64-bit version of QB64.
<center>'''Don't move QB64 executable out of the QB64 folder! The various sub-folders hold the C++ compiler files!'''</center>
<center>Versions of QB64 prior to 1.000 require the accompanying DLL files, which may be copied into the Windows ''System32'' or ''SysWOW64'' folder for program access outside of the QB64 folder. They can also be placed in a separate folder or download package with the EXE and program files.</center>
Does your Windows system have another version of the '''MinGW''' compiler? Does it have '''Fortran''' or '''GFortran'''? You can check your environmental values using the following batch file which will create the '''''settings.inf''''' text file in the batch folder:
PROCESSOR_IDENTIFIER=x86 Family 15 Model 1 Stepping 2, GenuineIntel
PROCESSOR_LEVEL=15
PROCESSOR_REVISION=0102
ProgramFiles=C:\Program Files
PROMPT=$P$G
SESSIONNAME=Console
SystemDrive=C:
SystemRoot=C:\WINDOWS
TEMP=C:\DOCUME~1\User1\LOCALS~1\Temp
TMP=C:\DOCUME~1\User1\LOCALS~1\Temp
{{TextEnd}}
: Environmental values in {{text|red|red}} above indicate where another C compiler has altered or added to the Windows settings.
<center>Environmental values to check and possibly clear are '''PATH=''', '''LIBRARY_PATH=''', '''LIB=''' or '''CPLUS_INCLUDE_PATH='''</center>
<p style="text-align: center">([[#toc|Return to FAQ topics]])</p>
==Q: Are there any known incompatibilities?==
A: There are some things that QB64 will not and NEVER was intended to do! The original concept was and is to provide a platform that allows older and NEW QBasic procedures and programs to run on the newer 32 and 64 bit personal computers. As you may have observed, this compatibility alone limits the access programs now have to DOS.
'''[[DOS]] is not fully supported''', as this will require full DOS support to be emulated, however it will continually be updated to support more source code and more features, memory addresses, ports, etc. so that it always approaches 100%. If you don't use too many [[ABSOLUTE]], [[INTERRUPT]], [[PEEK]], [[POKE]] and [[OUT]] 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, remember to check if the problem has been reported before please!), you can expect the most common addresses for interrupts, etc. to be functioning. Galleon has also received a comprehensive list of memory and port addresses so that even some less common addresses may work as well. If you are unsure, try them!
<p style="text-align: center">[[Keywords currently not supported by QB64]]</p>
'''Watch the 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. '''Monitor Task Manager!''' It can tell you how much 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:
:::::* [[_LIMIT]]: Limits the loops per second in ANY loop and thus lowers the overall CPU usage.
:::::* [[_DELAY]]: Pauses a procedure and releases unused resources for other programs.
:::::* [[SLEEP]]: Stops or delays program procedures and shares resources.
:::::* [[INPUT]] and [[INPUT$]] stop program procedures until an entry or key press is given.
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! The following programs have KNOWN issues with high CPU usage:
Copy each of the DLL files included with QB64 to the System32 or [[SysWOW64]] folder. You may need administrator rights to do this!
<center>[http://www.samlogic.net/articles/32-64-bit-windows-folder-x86-syswow64.htm SysWOW64 and Program Files(x86) folders on 64 bit Windows OS.]</center>
<center>'''[[QB64_FAQ#Q:_What_files_are_required_to_run_QB64_SDL_programs_in_Windows.3F|List of required QB64 DLL files for older versions (prior to 1.000)]]'''</center>
* With the [[_CWD$]] and [[_STARTDIR$]] commands you can get the current working path and the path from which your program was started, respectively. For older versions of QB64 in which these statements may not be available, use the procedures below.
bufsize& = 500 'Initial size of the string to store the result in
DO
buffer$ = {{Cl|SPACE$}}(bufsize&) 'Create the buffer to put result in
ret& = readlink&("/proc/self/exe", buffer$, bufsize&) '/proc/self/exe is always a symlink to our executable file
{{Cl|IF...THEN|IF}} ret& < bufsize& {{Cl|THEN}} {{Cl|EXIT DO}} 'ret& is how many bytes were actually put in the buffer. If they are equal, we need to make the buffer bigger and try again
bufsize& = bufsize& + 500
{{Cl|LOOP}}
exe$ = {{Cl|LEFT$}}(buffer$, ret&)
'exe$ is now the full path of the executable.
'This code just chops off the filename to give us the directory:
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. In general you may want to update monthly or a week after a new version release.
<center>[http://qb64.net/wiki/index.php?title=IDE#Help_Menu_.28Alt_.2B_H.29 QB64 IDE Help Menu]</center>
==Q: Can I use the same libraries with QB64 that I used with QB 4.5?==
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!
As of Dec 3, 2010 QB64 acquired [[DECLARE LIBRARY]] to allow 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: Perhaps that is because QB64 isn't 100% compatible yet, it is a work in progress. It is around 95-98% compatible right now, and that is a large number! The commands that haven't been implemented are either obsolete or are too obscure and have been replaced by modern functionality. Look at the [http://www.qb64.net/forum/index.php?board=15.0 Unimplemented Qbasic Commands Forum] for statements that are not available.
<p style="text-align: center">[[Keywords currently not supported by QB64]]</p>
'''Compiler errors''' are another subject. Always try to test the program in Qbasic BEFORE trying to run or compile it in QB64! You may find '''syntax or other code errors''' that the QB64 IDE may not find yet as a bonus! Always check the code before blaming QB64!
<p style="text-align: center">([[#toc|Return to FAQ topics]])</p>
==Q: How are foreign languages and keyboards supported in QB64?==
A: As of version 0.922 (October 20, 2010) QB64 supports foreign language keyboard characters.
* Setting up a typing language in the QB64 [[IDE]]:
:Step 1: In the OPTIONS menu select DISPLAY, then check the CUSTOM FONT check-box.
:Step 2: In the OPTIONS menu select LANGUAGE, then select a Code Page (CP850 for example) and click OK.
See the [[Unicode]] page to setup a language in a program you create. There are also links to the various [[Code Pages]] that are supported. Also there are four new keywords to work with keypresses and map them to ASCII key character codes:
<center>[[_KEYHIT]], [[_KEYDOWN]] and [[_MAPUNICODE]]</center>
<center>'''You can now re-assign key codes to Unicode characters in programs you create using the [[_MAPUNICODE]] statement!'''</center>
If you have any problems, post in the discussion board. In the meantime you can use any of these recommended [[ASCII]] methods:
Perhaps you can use the [[ASCII]] character codes. Go to the [[ASCII]] character chart and look for the character(s) you need. If you find them, remember the code number and use either CHR$(code%) or the Alt-number pad key method to type them into literal strings(real strings with quotes) only. The following QB64 program displays the characters available on your PC:
{{CodeStart}}
SCREEN _NEWIMAGE(800, 600, 256)
font$ = "C:\WINDOWS\Fonts\cour.ttf" 'TTF file in Windows
style$ = "monospace" 'font style
f& = _LOADFONT(font$, 22, style$)
_FONT f&
COLOR 11
FOR c% = 1 TO 6: PRINT c%; CHR$(c%);: NEXT
FOR c% = 14 TO 27: PRINT c%; CHR$(c%);: NEXT
FOR c% = 32 TO 255: PRINT c%; CHR$(c%);: NEX
DO: SLEEP: LOOP UNTIL INKEY$ <> ""
{{CodeEnd}}
'''The ALT Key Method:''' Hold the Alt key down and enter the code number using the Number Pad only. When you release the Alt key, the character should be in the IDE string you are making. Characters can be added (concatenated) using the + between the literal string and CHR$(code) or by using a semicolon as shown below:
{{CodeStart}}
PRINT {{Cl|CHR$}}(165) + "ormally I don't use these keys. Do You " + {{Cl|CHR$}}(168) 'concatenation
PRINT {{Cl|CHR$}}(165); "ormally I don't use these keys. Do you"; {{Cl|CHR$}}(168) 'semicolons
PRINT "Ñormally I don't use these keys. Do you¿" 'Alt-number pad method
{{CodeEnd}}
{{OutputStart}}
Ñormally I don't use these keys. Do you¿
{{OutputEnd}}
:'''NOTE:''' You MUST use concatenation when defining a string variable using the CHR$ function character returns!
<center>[[ASCII|Link to the ASCII Character Table]]</center>
To cut down on typing CHR$(???) all day, define often used characters as string variables such as Q$ = CHR$(34) as shown below:
{{CodeStart}}
{{Cl|DIM}} Q AS {{Cl|STRING}} * 1 'define as one byte string(get rid of $ type suffix too)
Q = {{Cl|CHR$}}(34) 'Q will now represent the elusive quotation mark in a string
PRINT "This string uses "; Q; "quotation marks"; Q; " that might cause a syntax error!"
{{CodeEnd}}
{{OutputStart}}
This string uses "quotation marks" that might cause a syntax error!
{{OutputEnd}}
:'''Warning! Do NOT use Notepad for special characters as it won't display them! It is best to enter them in the IDE.'''
You can use ANY of the ASCII characters to add borders, arrows, and many other characters not available on the keyboard. Hopefully this information will cure your problem!
<p style="text-align: center">([[#toc|Return to FAQ topics]])</p>
==Q: MUST I copy or drag ALL of my program files to the QB64 folder?==
A: You can instruct QB64 to save the resulting executable file to the same folder as your source code file so that all your project files can reside in a separate folder, for better organization. In the [[IDE]] of versions 1.000 and up, go to the Run menu and tick the option "Save EXE in the source folder". This way, next time you hit F5, Ctrl+F5 or even F11, QB64 will compile your .BAS file and the .EXE will be placed in the same folder.
* '''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)''
''NOTE: Versions of QB64 prior to 1.000 require that the DLL libraries are copied along with your executable or installed in the System folder (Windows).''
<p style="text-align: center">([[#toc|Return to FAQ topics]])</p>
==Q: How do I LINK modules or INCLUDE SUB procedures in QB64? ==
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. Use the following syntax and rules:
<center>''Syntax:'' REM $INCLUDE: 'filename.BI'</center>
:1) '''$INCLUDE [[TYPE]] definitions or [[DATA]] field code''' at the beginning of the module that will be compiled. Text code can be used, but must be renamed to .BI (cannot be a .TXT extension!) or kept as a .BAS module. SUB or FUNCTION code MUST be included at the end of the module code!
:2) '''$INCLUDE [[SUB]] or [[FUNCTION]] code''' AFTER any SUB or FUNCTION code in the module that will be compiled to combine them. Otherwise QB64 will create an error stating that the INCLUDE statement cannot be placed there.
:3) '''LINKING''' of program modules is accomplished by creating a NEW module and using an $INCLUDE statement for each module that is to be combined.
After you have created the include files, you can add them to ANY other program that requires them! Thus you will end up with smaller BAS files and SUB procedures that can be used over and over like libraries. The files are only used during a compilation.
<center>[[LINKed or Merged Modules|Program to Convert LINKed or Merged multiple module programs into one QB64 Module]]</center>
<p style="text-align: center">([[#toc|Return to FAQ topics]])</p>
==Q: CHAIN doesn't work the way I'm used to...==
A: CHAIN has been implemented in QB64 versions 0.851 up. Be sure to download the latest version of the compiler when available.
<center>'''Note: QB64 will automatically compile the named BAS file if it does not find the EXE file.</center>
The statement also can use [[COMMON]] or [[COMMON SHARED]] to pass program information. However QB64 uses files to pass the information. If your program moves to a location other than the EXE file's location, the file may be inaccessable! To avoid this problem, make sure that your program can refer to that location using a path.
<p style="text-align: center">([[#toc|Return to FAQ topics]])</p>
==Q: Can I use multiple monitors or Pole Monitors?==
A: Yes, program windows can be moved to them automatically using [[_SCREENMOVE]] with horizontal pixel values that are negative for a secondary monitor on the left and greater than the screen resolution for secondary monitors on the right.
'''Note:''' If [[_FULLSCREEN]] is used the program will appear in the primary monitor only. Other running program windows may be pushed onto a secondary monitor on the right so a secondary monitor on the left is preferable in those circumstances.
<p style="text-align: center">([[#toc|Return to FAQ topics]])</p>
==Q: Why isn't the [[IDE]] always working as I would expect?==
A: The [[IDE]] has many features shared with modern IDEs while retaining the retro look reminiscent of QuickBasic 4.5 and QBasic. You may request new features in the Discussion subforum and they will be analyzed for implementation, although no warranty of being added is made.
<p style="text-align: center">([[#toc|Return to FAQ topics]])</p>
==Q: If QB64 creates Basic programs why is there no Immediate Window?==
A: Because there is no '''QB64''' interpreter. All C code has to be compiled before it can be run, but you can run more than one instance.
'''QB64''' uses the Immediate window area to suggest syntax for keyword entries and give the compiler status when compiling. To run code snippets or do program calculations using QB64 just open up another instance of the [[IDE]]. Each new instance of QB64 will create a new numbered instance of Untitled(n).exe when compiled. If you want to save the test code for later use, Save it as a BAS file name before closing that instance of QB64. Ihe [[IDE]] will always ask if you want to save new or edited code.
{{TextStart}}'''{{text|S|white}}tart F5''' Compiles into EXE file and runs program(with code whiteout).
───────────────────────────
'''Start ({{text|D|white}}etached) Ctrl+F5''' Compiles into EXE and runs program separately (no code whiteout).
'''Make E{{text|X|white}}E Only F11''' Compiles into EXE without program files if there are no errors. '' ''
───────────────────────────
'''Make {{text|A|white}}ndroid Project''' GL Compiled program as Android project(enabled in Options)
{{TextEnd}}{{small|Function keys compile without entering menu}}
<center> White letters indicate CTRL + letter shortcuts when inside Run menu</center>
<center>'''Associated text [[$INCLUDE]] code files, [[DECLARE LIBRARY|LIBRARY]] DLL files and C++ ''.h'' header files must be in the QB64 folder to compile.'''
<p style="text-align: center">([[#toc|Return to FAQ topics]])</p>
==Q: How can I slow my program down and/or use less CPU resources?==
Not by using FOR loops! It would take a lot of loops just to slow QB64 down! Try [[_LIMIT]] to slow your program down and run at the same frame rate every loop. The integer value you enter determines the loop rate whether it is a [[DO...LOOP]] or a [[FOR...NEXT]] loop.
[[_LIMIT]] also keeps the CPU memory usage lower when used correctly. Use Task Manager or another CPU manager to monitor the percentage of use if it is over 50% and it doesn't need to be. Some QB64 programs can take up over 90% of the memory needed!
Use [[SLEEP]] or [[INPUT$]] to wait for user entries, key presses or menu selections rather than using running [[INKEY$]] loops too.
<p style="text-align: center">([[#toc|Return to FAQ topics]])</p>
A: Yes, drag the window border to resize it or use the ''Alt + Enter'' key combination to switch from windowed to full screen mode. This can also be used to resize a QB64 program screen (see [[$RESIZE]]).
There is also a way to set the window size in the ''Options'' Menu. Select ''Display'' and change the size from 80 columns and 25 rows to a '''larger''' size. The size '''cannot be less than 80 by 25!''' The size denotes the TEXT column and rows only! DO NOT MAKE IT TOO LARGE!
If there is ever a problem with an OPTION that you set, just Delete the '''.\internal\temp\options.txt''' file. Then restart QB64. You can find the program listed in the taskbar. Right click and select ''Close'' from the pop-up menu.
A: The autoformatting feature allows you to set a fixed number of spaces to indent your code. You can also choose to have keywords automatically changed to UPPERCASE as well as indenting the contents inside SUB/FUNCTION procedures. If you don't like the way it alters your code (both at load time and as you type it), just disable it.
<center>'''Autoformatting and Updating can be turned off in the [[IDE]] using the [[IDE#Options_Menu_.28Alt_.2B_O.29:|Options Menu]]!</center>
A: No, it doesn't. QB64 is made to run on new systems (WinXP and up, Linux and macOS). The .exe files produced by QB64 should work in Windows 98 as long as the required DLL libraries, if any, are supported on that system.
==Q: Can Line Numbers be removed from older program code?==
A: Yes, you can use the Microsoft program below or the program on the following page to remove line numbers that are not required by Basic keywords such as [[GOTO]]. See: [[Line number|Removing line numbers]]
<center>'''[ftp://ftp.microsoft.com/services/technet/windows/msdos/RESKIT/SUPPDISK/REMLINE.BAS Microsoft's REMLINE.BAS program removes unnecessary line numbers]'''</center>
<p style="text-align: center">([[#toc|Return to FAQ topics]])</p>
==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.
==Q: What files are required to run older QB64 programs (version .954 and older) in Windows?==
A: Older versions of the QB64 compiler (.954 or older) and '''EVERY''' EXE file created by this version of the compiler are dependant on various DLL Library files to function properly. These files are found inside of the QB64 folder. This also explains why QB64 will create ALL EXE files in the QB64 folder no matter where the original BAS file is located on the computer. Your new program will require these files too, but you can move the DLL files to your shared SYSTEM32 folder to eliminate duplicates!
<center>'''Other Important Files:'''</center>
{{TextStart}} cyberbit.ttf (12.7 MB v 0.92, October 2010)
{{TextEnd}}
<center>'''NOTE:''' ''cyberbit.ttf'' file is a 12.7 megabyte font for rendering [[Unicode]] characters. Auto-update may be slow downloading this file!</center>
<center>This font is NOT required to be included with a program as QB64 can use other fonts when necessary.</center>
<center>It is suggested that frequent users copy the DLL files to the SYSTEM folder in Windows. The location should be: </center>
{{WhiteStart}}
''C:\WINDOWS\SYSTEM32'' or ''C:\WINDOWS\[[SysWOW64]]''
{{WhiteEnd}}
This will allow all of your programs to run in any location without copies of the DLL files inside of every program folder. Administrator rights may be necessary to move them there! The '''DATA''' folder files are integrated into the compiler itself in versions .91 and above.
<p style="text-align: center">([[#toc|Return to FAQ topics]])</p>
==Q: Does a User licence come with QB64?==
A: Yes, as of version 0.85 a licence comes with QB64 released as freeware. Read the licence.txt that comes with the download package for more information. QB64 will always be free to use with the current library files and the licenses DO NOT LIMIT the use of those libraries! You are also allowed to sell software that you create with the following stipulations:
:The choice of license makes a big difference: using the '''Lesser GPL''' permits use of the library in proprietary programs; using the ordinary GPL for a library makes it available only for free programs.
A: Compiler errors are often actually coding errors that both you and the IDE don't notice! Often it is a syntax error such as forgetting a quotation mark in a PRINT. Look for syntax errors too.
* You will find a script/batch file called '''recompile_win.bat''' (also '''recompile_osx.command''' or '''recompile_lnx.sh''', according to your operating system) inside the folder '''internal\temp''' (if you have more than one instance of the IDE open, look inside temp2, temp3, etc).
* Immediately after encountering a "C++ compilation failed" message, run this script to have a look at the error message returned by the gcc compiler. That usually helps track the issue.
----
''For versions of QB64 below .954, the best way to get a clue to the problem is to run the following batch file IMMEDIATELY AFTER a compilation failure: '''CODE UPDATED 1/4/2011'''''
<center>'''{{text|It's a good idea to exclude "QB64.exe" from any real-time anti-virus scanning to prevent IDE Module Errors!|red}}'''</center>
A: QB64 is open source freeware and all the codebase is freely available on GitHub at [https://github.com/Galleondragon/qb64 this link]. You can fork it, develop your own modified version of it and '''most importantly: help improve the official version by making pull requests.''' If you are already familiar with code collaboration, versioning control using git and would like to help, become involved! Your contributions could end up becoming part of the QB64 project.
<!-- You can find a video tutorial here: [http://www.qb64.net/qb64_repository_tutorial.mp4 Repository Video Tutorial] -->
:: '''I cannot stress enough that the QB64 repository is not an official QB64 release! Even though our contributors are individually appointed, I'm not responsible for the contributions of these other authors which could potentially be malicious. '''
::'''Galleon'''
<p style="text-align: center">([[#toc|Return to FAQ topics]])</p>
[[Main_Page#Appendix:|Appendix of QB64 Procedures]]
[http://qb64.net/wiki/index.php?title=Main_Page#Appendix: Information about Programming concepts]</center>
<p style="text-align: center">[[Keywords currently not supported by QB64]]</p>
<center>[[Keywords_currently_not_supported_by_QB64#Keywords_Not_Supported_in_Linux_or_MAC_OSX_versions|Keywords Not Supported in Linux or MAC OSX versions]]</center>