GLBasic Benutzerhandbuch

Main sections

Präprozessor

GLBasic Präprozessor


Der GLBasic Präprozessor ist ein Programm das vor der Kompilierung der einzelnen .gbas Dateien einsetzt und Teile des Quellcodes auskommentiert bevor der eigentliche PreCompiler einsetzt. Das ist besonders hilfreich um z.B. Teile nur in der Debug Version eines Programms auszuführen oder plattformspezifischen Code besser zu verwalten.

Befehle


?DEFINE name [Wert]


Definiert das Symbol "name". Wird der optionale "Wert" weggelassen wird er zu 1 gesetzt.
Besteht die Variable bereits, wird sie überschrieben.

?UNDEF name


Entfernt die Definition einer Variablen.

?IFDEF name


Prüft ob ein Name definiert ist. Wenn nicht, wird der folgende Code bis ?ELSE oder ?ENDIF aus dem Programm entfernt.

?IFNDEF name


Prüft ob ein Name <B>nicht</B> definiert ist. Wenn nicht, wird der folgende Code bis ?ELSE oder ?ENDIF aus dem Programm entfernt.

?IF ausdruck


?IF DEFINED(name) OR DEFINED(name2)


Prüft ob der Term "ausdruck" einen Wert <>0 hat. Hier kann man auch mathematische Operatoren verwenden:
+, -, *, /, AND, OR, ( ), DEFINED(name). Es können Symbole die mit ?DEFINE gesetzt wurden verwendet werden.

Wenn nicht, wird der folgende Code bis ?ELSE oder ?ENDIF aus dem Programm entfernt.

?ELSE


Gibt eine "IF ELSE ENDIF" Anweisung an.

?ELSEIF ausdruck


Führt ein ?IF aus, wenn der ?ELSE Block ausgeführt wird.


?ENDIF


Beendet einen ?IFDEF Block.

?WARNING Meldung


Gibt eine Meldung als Warnung aus. Das kann hilfreich sein um bei bestimmten Platformen eine Information anzuzeigen, falls z.B. bestimmte Feature nicht vorhanden sind.

?ERROR Meldung


Beendet den Kompilierungs Prozess und gibt eine Fehlermeldung aus.

Definierte Namen


Folgende Symbole sind vom Editor aus definiert:
<B>GLB_DEBUG</B> Debug Modus ist aktiviert
<B>GLB_VERSION</B> Die Versionsnummer des Editors
<B>GLB_CONSOLE</B> Program ist Konsolenprogram

Platformen:
<B>WIN32</B> Aktuelle Platform ist: Win32
<B>OSXUNI</B> Apple Mac OS-X
<B>LINUX</B> Linux x86
<B>IPHONE</B>iPhone, iPod Touch
<B>WINCE</B>Windows Mobile, Windows Phone, PocketPC
<B>GP2XWIZ</B>Gamepark Holding GP2X-Wiz
<B>WIN32DLL</B>Win32, DLL
<B>GP2X</B>Gamepark holding GP2X (F100, F200)
<B>XBOXLINUX</B>Linux x86, software renderer
<B>CAANOO</B>GPH Caanoo Gerät

Beispiel:
?IF GLB_VERSION < 7.0
?ERROR Precprocessor not enabled ;)
?ENDIF

?IF WIN32
?DEFINE FASTGFX
?ENDIF

?IF FASTGFX
STARTPOLY -1
POLYVECTOR 0, 0, 0,0, 0xffffff
POLYVECTOR 0,99, 0,0, 0xffffff
POLYVECTOR 99,99, 0,0, 0xffffff
ENDPOLY
?ELSE // slow graphics ->
DRRAWRECT 0,0,99,99, 0xffffff
?ENDIF


?ELSEausdruckWin32, DLL

See also...