FB-Dialektformen

FreeBASIC-Referenz » Verschiedene Themen » FB-Dialektformen

Seit FreeBASIC v0.17 existiert die Kommandozeilenoption -lang. Diese wird verwendet, um den Kompatibilitätsmodus auf verschiedene Versionen von FreeBASIC einzustellen. Das Kommando -lang benötigt einen Parameter, der angibt, mit welchem Kompatibilitätsmodus kompiliert werden soll:

OptionBeschreibung
"fb"FreeBASIC-Kompatibilität (Standard)
"deprecated"Kompatibilität zu früheren Versionen von FreeBASIC
"fblite"Kompatiblität zu FreeBASIC, aber mit einem Programmierstil, der kompatibler zu QBASIC ist
"qb"QBASIC-Kompatibilität

Seit FreeBASIC v0.20 ist auch die Optionsangabe als Metabefehl #LANG 'Option' am Anfang des Quelltextes möglich.
Die "-lang"-Option wurde nötig, um Objektorientierung und andere Features in FreeBASIC zu ermöglichen, ohne die Abwärtskompatibilität zu QB oder zu Quellcodes für ältere Versionen von FreeBASIC aufgeben zu müssen oder viele verschiedene Compiler-Versionen entwickeln zu müssen. Um alte GW-BASIC- und QB(ASIC)-Quellcodes ohne größere Änderungen kompilieren zu können, geben Sie die Kommandozeile

-lang qb

an. Um Codes zu kompilieren, die für FreeBASIC v0.16 oder älter geschrieben wurden, geben Sie die Kommandozeile

-lang deprecated

an. Der Modus

-lang fb

ist der Standard-Modus. Diese Zeile muss (noch) nicht explizit angegeben werden. Sie unterscheidet sich von der 'deprecated'-Variante durch diese Dinge:

-lang fb
Nicht mehr unterstützt

-lang deprecated
Unterstützt

nicht mehr unterstützt

Die Option

-lang deprecated

wurde bereitgestellt, um Code einfach von einer Entwicklungsversion in die nächste zu upgraden. Sie wird möglicherweise in einem Major-Release wie FreeBasic 1.0 entfernt werden.

-lang fblite
Unterstützt

-lang qb
Unterstützt

Nicht unterstützt

FB-eigene Befehle im QB-Kompatiblitätsmodus
Befehle, die in FB neu hinzugekommen sind, können mit einem Trick auch im QB-Kompatiblitätsmodus benutzt werden: Versehen Sie diese mit einem doppelten Unterstrich am Wortanfang, um sie zu benutzen. Beispiel: __INSTRREV
Beachten Sie, dass bei Befehlen, deren Verhalten sich in FreeBasic geändert hat (z.B. SLEEP oder INKEY), auch das FB-Verhalten übernommen wird. So wartet __SLEEP 1 im QB-kompatiblitätsmodus eine Millisekunde, während SLEEP 1 - wie aus QB gewohnt - eine Sekunde wartet. Bei __INKEY wird dementsprechend CHR(255) statt CHR(0) als erweitertes Zeichen benutzt.

Hinweis: Die Option

-lang qb

wird in allen Folgeversionen von FreeBASIC erhalten bleiben.