Using Prebuilt Libraries
FreeBASIC is distributed with many headers for common or popular libraries. The headers allow a programmer to use functions available in these existing static or shared libraries (DLLs).
The libraries themselves are not distributed with FreeBASIC, but most can be downloaded from the web and readily installed. Some other libraries may need to be first compiled from sources to be used. Please see the documentation for the specific library on how to configure, install, and use them.
Note that the system architecture of the library has to match the architecture of the application. For example, to successfully use a library in a x86 (32-bit) application, a x86 (32-bit) library is required.
Some static or shared libraries (DLLs) may be already present on the system since they might be part of FreeBASIC itself or the operating system.
Although many headers can be used on any of the platforms supported by FreeBASIC, some headers are platform specific and will not be usable on other platforms.
FreeBASIC headers
There are a few headers that are specific to FreeBASIC and expose some functions that are otherwise not available:
- inc/fbc-int/array.bi - Declaration for FbArray (array descriptor structure and access), ArrayLen, ArraySize.
- inc/datetime.bi - Declarations for DateSerial, DateValue, IsDate, Year, Month, Day, Weekday, TimeSerial, TimeValue, Hour, Minute, Second, Now, DateAdd, DatePart, DateDiff, MonthName, WeekdayName.
- inc/dir.bi - Constants to be used with Dir.
- inc/fbgfx.bi - Additional constants and structures to be used with graphics commands such as Multikey, Screencontrol, and Screenevent, Imagecreate.
- inc/fbio.bi - Declaration for IsRedirected.
- inc/fblimits.bi - Constants for minimum and maximum values of built-in number.
- inc/fbprng.bi - Constants to be used with Randomize, and also unfinished structures for other random number generators.
- inc/fbthread.bi - Declaration for ThreadDetach and ThreadSelf.
- inc/file.bi - Declarations for FileCopy, FileAttr, FileLen, Fileexists, FileDateTime.
- inc/fbc-int/symbol.bi - Declaration for __FB_QUERY_SYMBOL__ and its associated sub-macros.
- inc/crt/string.bi - Declarations for format.
- inc/vbcompat.bi - Includes datetime.bi, dir.bi, file.bi, and string.bi plus additional constants compatible with Microsoft Visual Basic.
C Runtime (CRT)
Where possible cross-platform compatible headers have been provided for the C runtime (CRT). For example,
To include a specific CRT header, prefix the name of the header file with "crt/". For example:
Windows API#include once "crt.bi"
printf( !"Hello World\n" )
printf( !"Hello World\n" )
#include once "crt/stdio.bi"
Dim f As FILE Ptr
f = fopen("somefile.txt", "w")
fprintf( f, "Hello File\n")
fclose( f )
Dim f As FILE Ptr
f = fopen("somefile.txt", "w")
fprintf( f, "Hello File\n")
fclose( f )
Many (many) headers for the Windows API are available for inclusion in FreeBASIC source code. In most cases the only include file needed is "windows.bi". For example,
To include a specific Windows API header, prefix the name of the header with "win/" for example:
Browse the "inc/win/" directory where FreeBASIC was installed to see all of the available Windows API headers.
#include once "windows.bi"
MessageBox( null, "Hello World", "FreeBASIC", MB_OK )
MessageBox( null, "Hello World", "FreeBASIC", MB_OK )
#include once "win/ddraw.bi"
Other Headers Provided
See the External Libraries Index for an overview of the additional headers shipped with FreeBASIC. The page also describes the file(s) that need to be included to use the library. Alternatively one can browse the "inc/" directory located where FreeBASIC was installed to find other headers. It is possible that headers might be available for a library you need to use. Some headers are located in "inc/" and others might be located in a sub-directory. To include headers located in a subdirectory of "inc/", prefix the name of the header with the name of the directory where it is located.
For example:
Requirements for Using Prebuilt Static LibrariesFor example:
'' located at inc/curl.bi
#include once "curl.bi"
'' located at inc/GL/gl.bi
#include once "GL/gl.bi"
#include once "curl.bi"
'' located at inc/GL/gl.bi
#include once "GL/gl.bi"
- The source code must include the appropriate headers using #include.
- The static library must be linked at compile time by using either #inclib in the source code or by using the -l option on the command line to specify the name of the library.
Requirements for Using Prebuilt Shared Libraries
- The source code must include the appropriate headers using #include.
- The shared library (.DLL) must be present on the host computer where the compiled program will run.
Version:
- Since fbc 1.10.0, symbol.bi and fblimits.bi are added.
- Before fbc 1.10.0 (for fbc 1.08.0 and fbc 1.09.0), fbprng.bi was named fbmath.bi.
- Since fbc 1.08.0, array.bi is added.
- Before fbc 1.08.0, the standard fbmath.bi header did not exist.
See also:
Back to Programmer's Guide