PowerBASIC Language Reference

Note: PBXA64 is a prototype. Only the documented subset of PowerBASIC is supported. Full PBWin/PBCC compatibility is not yet achieved.

Module Structure

#COMPILE EXE "output.exe"
#DIM ALL

' Declarations
DECLARE FUNCTION MsgBox LIB "user32.dll" ALIAS "MessageBoxA" (...)
GLOBAL g_count AS LONG

' Types
TYPE Point2D
    x AS DOUBLE
    y AS DOUBLE
END TYPE

' Main entry
FUNCTION PBMAIN() AS LONG
    LOCAL name AS STRING
    name = "PBXA64"
    PRINT "Hello, "; name
    FUNCTION = 0
END FUNCTION

Supported Features (V22)

CategorySupportedLimitations
Program entryFUNCTION PBMAIN() AS LONGRequired entry point
ProceduresFUNCTION, SUB, DECLARE, CALLBACKFull WinAPI support
VariablesLOCAL, DIM, STATIC, GLOBALGLOBAL (limited), no THREADED
TypesINTEGER, LONG, QUAD, BYTE, WORD, DWORD, SINGLE, DOUBLE, STRINGNo VARIANT, OBJECT, GUID
ArraysFixed arrays, stack-backed REDIMNo REDIM PRESERVE, no heap arrays
StringsLocal ASCIIZ buffers, concat (+), LEN, STRPTR, VARPTRFixed-length only, no dynamic
Control flowIF/ELSE/END IF, FOR/NEXT, WHILE/WEND, SELECT CASE, DO/LOOP, GOTO, GOSUBFully supported
I/OPRINT, OPEN/PRINT#/INPUT#/CLOSE, LINE INPUT#, GET/PUT, BINARYFully supported via WinAPI
MacrosMACRO, MACROFUNCTION, MACROTEMP, #DEFINEFull V22 expansion engine
External callsWinAPI DECLARE with >4 argsVarargs, struct args supported

See Also