Compiler Direktiven
BeschreibungCompilerIf <Konstanten Ausdruck> ... [CompilerElse] ... CompilerEndIf
Wenn das Ergebnis des <Konstanten Ausdrucks> wahr ergibt, wird der Programmcode innerhalb des 'If' Abschnitts kompiliert, andernfalls wird er total ignoriert. Dies ist nützlich beim Erstellen von Multi-OS (auf mehreren Betriebssystemen lauffähigen) Programmen, um einige Programmabschnitte mit OS-spezifischen Funktionen individuell zu gestalten.Beispiel:
CompilerIf #PB_Compiler_OS = #PB_OS_Linux ; etwas Linux spezifischer Programmcode.. CompilerEndIf
CompilerSelect <numerischer Wert>
CompilerCase
...
[CompilerDefault]
...
CompilerEndSelect
BeschreibungArbeitet exakt wie das reguläre Select : EndSelect, teilt aber dem Compiler mit, welcher Programmcode kompiliert werden soll. Dies ist nützlich beim Erstellen von Multi-OS (auf mehreren Betriebssystemen lauffähigen) Programmen, um einige Programmabschnitte mit OS-spezifischen Funktionen individuell zu gestalten.Beispiel:
CompilerSelect #PB_Compiler_OS CompilerCase #PB_OS_AmigaOS ; etwas Amiga spezifischer Programmcode CompilerCase #PB_OS_Linux ; etwas Linux spezifischer Programmcode CompilerEndSelect
BeschreibungCompilerError <String Konstante>
Generiert einen Fehler, so wie wenn es ein Syntax-Error wäre und zeigt die zugehörige Nachricht an. Dies kann nützlich beim Bearbeiten spezieller Routinen sein oder um zum informieren, dass ein Quellcode auf einem bestimmten OS nicht verfügbar ist.Beispiel:
CompilerIf #PB_Compiler_OS = #PB_OS_AmigaOS CompilerError "AmigaOS wird nicht unterstützt, sorry." CompilerElse CompilerError "OS wird unterstützt, Sie können mich nun (aus)kommentieren." CompilerEndIf
BeschreibungEnableExplicit DisableExplicit
Aktiviert (EnableExplicit) oder deaktiviert (DisableExplicit) den Explizit-Modus. Wenn aktiviert, werden alle nicht ausdrücklich mittels Define, Global, Protected, Static oder Shared deklarierten Variablen nicht akzeptiert und der Compiler wird eine Fehlermeldung ausgeben. Dies kann helfen, Schreibfehler bei der Verwendung von Variablen auszumerzen.Beispiel:
EnableExplicit Define a a = 20 ; Ok, da mittels 'Define' deklariert b = 10 ; Hier wird ein Fehler ausgegeben
BeschreibungEnableASM DisableASM
Aktiviert (EnableASM) oder deaktiviert (DisableASM) den Inline-Assembler. Wenn aktiviert, dann sind alle Assembler-Schlüsselwörter direkt im Quellcode verfügbar, siehe das Kapitel Inline Assembler für weitere Informationen.Beispiel:
; x86 Assembler Beispiel ; Test = 10 EnableASM MOV dword [v_Test],20 DisableASM Debug Test ; wird 20 ergeben
Reservierte Konstanten
Der PureBasic Compiler besitzt einige reservierte Konstanten, welche für den Programmierer nützlich sein können:
#PB_Compiler_OS : Mit dieser Konstante kann bestimmt werden, auf welchem OS der Compiler
gerade läuft (nützlich für die Erstellung von Cross-Plattform Applikationen).
Das Ergebnis kann eine der folgenden Konstanten sein:
- #PB_OS_Windows : Der Compiler läuft unter Windows.
- #PB_OS_Linux : Der Compiler läuft unter Linux.
- #PB_OS_AmigaOS : Der Compiler läuft unter AmigaOS.
- #PB_OS_MacOS : Der Compiler läuft unter Mac OS X.
#PB_Compiler_Date : Aktuelles Datum zum Zeitpunkt des Kompilierens, im PureBasic Datums-Format.
#PB_Compiler_File : Voller Pfad und Name der kompilierten Datei, nützlich für Debug-Zwecke.
#PB_Compiler_Line : Zeilennummer der kompilierten Datei, nützlich für Debug-Zwecke.
#PB_Compiler_Procedure: Aktueller Prozedur-Name, wenn sich die Zeile innerhalb einer Prozedur befindet.
#PB_Compiler_Version : Compiler-Version, im Fließkomma-Format in der Form '4.00'.
#PB_Compiler_Home : Vollständiger Pfad des PureBasic-Verzeichnisses, kann nützlich zum Auffinden
von Include-Dateien sein.
#PB_Compiler_Debugger : Auf 1 gesetzt, wenn der Laufzeit-Debugger eingeschalten ist, andernfalls 0.
Wenn ein Executable erstellt wird, ist der Debugger immer ausgeschalten (diese Konstante wird dann 0 sein).
#PB_Compiler_Thread : Auf 1 gesetzt, wenn das Executable im threadsicheren Modus kompiliert wird, andernfalls 0.
#PB_Compiler_Unicode : Auf 1 gesetzt, wenn das Executable im Unicode-Modus kompiliert wird, andernfalls 0.