Compilieren

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Delphi-Compiler

Projekt > Optionen > Delphi-Compiler > Compilieren

Auf dieser Seite legen Sie die Compiler-Optionen für das aktuelle Projekt fest.

Hinweis: Nicht alle der hier beschriebenen Optionen stehen für alle Projekttypen zur Verfügung. Zum Beispiel ist die Option DCP-Ausgabeverzeichnis nicht für C++-Projekte verfügbar.
Optionen Beschreibung

Ziel, Übernehmen, Speichern

Siehe Optionen für das Ziel.

Gemeinsame Elemente

Siehe Gemeinsame Elemente auf den Projektoptionsseiten.

Optionen für die Quelltexterzeugung

Element Beschreibung Compiler-Optionen Alle Plattformen werden unterstützt (sofern nicht anders angegeben)

Steuerung des Code-Inlining

Setzt oder entfernt die Delphi-Compiler-Direktive {$INLINE <ON|OFF|AUTO>}. Weitere Informationen finden Sie unter "Die Direktive Inline" in Prozeduren und Funktionen aufrufen.

Vorgabe = Aus

‑‑inline

Codeseite

Geben Sie die Codeseite für die Sprache der Anwendung ein (z. B. 1252). Die Codeseite wird als Dezimalzahl angegeben, die eine bestimmte Zeichencodierungstabelle bezeichnet. Es gibt Standardwerte für zahlreiche Sprachen.

Vorgabe = 0

‑‑codepage

Laufzeittypinformationen ausgeben

Steuert die Erzeugung von Laufzeittypinformationen. Der Vorgabewert ist False (es werden keine Laufzeittypinformationen ausgegeben).

Vorgabe = False

‑$M+
‑$M‑

Mindestgröße für Enum

Legt die Mindestgröße des Arbeitsspeichers fest, der für ein Enum zugewiesen wird. Byte {$Z1}, Word {$Z2} und Double Word {$Z4} sind möglich. Die Popup-Schaltfläche Pfeil nach unten ist unter Gemeinsame Elemente auf den Projektoptionsseiten beschrieben.

Vorgabe = Byte

‑$Z1
‑$Z2
‑$Z4

Optimierung

Steuert die Codeoptimierung. Wenn diese Option aktiviert ist (entspricht {$O+}), führt der Compiler eine Reihe von Codeoptimierungen durch, wie z. B. Variablen in CPU-Register setzen, allgemeine Unterausdrücke entfernen und Induktionsvariablen erzeugen. Bei deaktivierter Option (entspricht {$O-}) werden diese Optimierungen nicht ausgeführt.

Außer in bestimmten Testsituationen sollte die Codeoptimierung immer aktiviert sein. Die Optimierungen des Delphi-Compilers führen zu keinerlei Änderungen der Funktionsweise des Programms. Der Compiler führt also keine "unsicheren" Optimierungen durch, die die besondere Aufmerksamkeit des Programmierers erfordern. Mit dieser Option können Optimierungen nur für eine gesamte Prozedur oder Funktion aktiviert oder deaktiviert werden. Dies ist nicht für bestimmte Zeilen innerhalb einer Routine möglich.

Vorgabe = False

‑$O+
‑$O‑

Pentium-sicheres FDIV

Steuert die Erzeugung von Gleitkommacode, der vor der fehlerhaften FDIV-Anweisung schützt, die in bestimmten (frühen) Pentium-Prozessoren enthalten ist. Windows 95, Windows NT 3.51 und neuere Versionen des Windows-Betriebssystems enthalten Code, der den Pentium-FDIV-Fehler korrigiert und das System schützt. Wenn die Option aktiviert ist (entspricht der Compiler-Direktive {$U+}), werden alle Gleitkommadivisionen mit einer Laufzeitbibliotheksroutine ausgeführt. Beim ersten Aufruf einer Gleitkommadivision prüft die Routine, ob die FDIV-Anweisung des Prozessors korrekt arbeitet, und aktualisiert die in der Unit System deklarierte Variable TestFDIV entsprechend.

Der Wert von TestFDIV bestimmt bei den folgenden Gleitkommadivisionen, wie vorzugehen ist:

  • -1 bedeutet, dass die FDIV-Anweisung getestet und als fehlerhaft erkannt wurde.
  • 0 bedeutet, dass die FDIV-Anweisung noch nicht geprüft wurde.
  • 1 bedeutet, dass die FDIV-Anweisung getestet und als korrekt erkannt wurde.

Bei Pentium-Prozessoren, die keine fehlerhafte FDIV-Anweisung enthalten, bewirkt die Aktivierung dieser Option nur eine geringfügige Leistungsminderung. Bei fehlerhaften Pentium-Prozessoren können Gleitkommadivisionen bei aktivierter Option bis zu dreimal länger dauern, liefern aber stets korrekte Ergebnisse.

Bei deaktivierter Option (entspricht {$U-}) werden Gleitkommadivisionen durch Inline-FDIV-Anweisungen ausgeführt. Sie garantieren optimale Ausführungsgeschwindigkeiten und Codegrößen, können auf fehlerhaften Pentium-Prozessoren jedoch falsche Ergebnisse liefern. Sie sollten daher die Option nur deaktivieren, wenn Sie sicher sind, dass der Code auf fehlerfreien Pentium-Prozessoren ausgeführt wird.

Vorgabe = False

‑$U+
‑$U‑

  • 32‑Bit-Windows
  • 64‑Bit-Windows
  • Mac OS X
  • iOS-Simulator

Record-Felder ausrichten

Steuert die Ausrichtung von Feldern in Record-Typen und Klassenstrukturen von Delphi. Klicken Sie auf den nach unten weisenden Pfeil, um einen Wert auszuwählen:

  • Wenn Sie die Option Aus (entspricht {$A1}) wählen oder die Option deaktivieren (entspricht {$A-}), werden Felder nicht ausgerichtet. Alle Records und Klassenstrukturen werden gepackt.
  • Wenn Sie die Option Byte (entspricht {$A2}) wählen, werden die ohne den Bezeichner "packed" deklarierten Felder in Record-Typen und die Felder in Klassenstrukturen an Byte-Grenzen ausgerichtet.
  • Wenn Sie die Option Word (entspricht {$A2}) wählen, werden die ohne den Bezeichner "packed" deklarierten Felder in Record-Typen und die Felder in Klassenstrukturen an Word-Grenzen ausgerichtet.
  • Wenn Sie die Option Double Word (entspricht {$A4}) wählen, werden die ohne den Bezeichner "packed" deklarierten Felder in Record-Typen und die Felder in Klassenstrukturen an Double Word-Grenzen ausgerichtet.
  • Wenn Sie die Option Quad Word (entspricht {$A8} oder {$A+}) wählen, werden die ohne den Bezeichner "packed" deklarierten Felder in Record-Typen und die Felder in Klassenstrukturen an Quad Word-Grenzen ausgerichtet.

Variablen und typisierte Konstanten werden unabhängig von der Direktive $A immer für einen optimalen Zugriff ausgerichtet. Die Ausführung ist schneller, wenn Sie die Option auf 8 (Quad Word) setzen.
Dies ist die Vorgabe.

‑$A‑
‑$A1
‑$A2
‑$A4
‑$A8
‑$A+

Stack-Frames

Steuert die Erzeugung von Stack-Frames für Prozeduren und Funktionen.

Wenn die Option aktiviert ist (entspricht {$W+}), werden Stack-Frames für Prozeduren und Funktionen auch dann erzeugt, wenn sie nicht benötigt werden.

Bei deaktivierter Option (entspricht {$W-}), werden Stack-Frames nur generiert, wenn die Verwendung lokaler Variablen durch die Routine dies erfordert. Normalerweise wird der Status {$W+} nur für bestimmte Debugger-Tools benötigt, die eine Erzeugung von Stack-Frames für alle Prozeduren und Funktionen verlangen.
Vorgabe = True

‑$W+
‑$W‑

  • 32‑Bit-Windows
  • 64‑Bit-Windows
  • Mac OS X
  • iOS-Simulator

Optionen für das Debuggen

Element Beschreibung Compiler-Optionen Alle Plattformen werden unterstützt (sofern nicht anders angegeben)

Assertion

Aktiviert oder deaktiviert die Erzeugung von Assertion-Code in einer Delphi-Quelltextdatei. Die Option ist standardmäßig aktiviert (entspricht {$C+}). Da in Auslieferungsversionen eines Produkts normalerweise zur Laufzeit keine Assertions verwendet werden, sind Compiler-Direktiven vorhanden, die die Erzeugung von Code für Assertions deaktivieren. Deaktivieren Sie diese Option, um Assertions zu deaktivieren.

‑$C+
‑$C‑

Debug-Informationen

Debug-Informationen enthalten für jede Prozedur eine Tabelle mit Zeilennummern, in der Adressen des Objektcodes als Zeilennummern im Quelltext dargestellt werden. Bei Units werden die Debug-Informationen in der Unit-Datei gemeinsam mit dem Objektcode der Unit aufgezeichnet. Durch die Debug-Informationen erhöht sich die Größe der Unit-Datei. Das Compilieren von Programmen, die diese Unit verwenden, erfordert deshalb mehr Speicher. Die Größe und die Ausführungsgeschwindigkeit des ausführbaren Programms werden aber nicht nachteilig beeinflusst. Wenn ein Programm oder eine Unit mit dieser Option (entspricht {$D+}) compiliert wird, können Sie das betreffende Modul mit dem integrierten Debugger in Einzelschritten testen und Haltepunkte setzen. Mit den Optionen Debug-Informationen in separate TDS-Datei ausgeben und Map-Datei (auf der Seite Linken des Dialogfelds Projektoptionen) können nur vollständige Zeileninformationen für Module erzeugt werden, die mit der aktivierter Option compiliert wurden. Diese Option wird normalerweise zusammen mit der Option Lokale Symbole (Schalter {$L}) eingesetzt, die die Erzeugung von lokalen Symbolinformationen für das Debugging steuert.

‑V ‑VN

Lokale Symbole

Aktiviert oder deaktiviert die Erzeugung von Symbolinformationen. Klicken Sie auf den nach unten weisenden Pfeil, um einen Wert (True, False) auszuwählen.

Lokale Symbolinformationen sind die Namen und Typen aller lokalen Variablen und Konstanten eines Moduls, also die Symbole im implementation-Abschnitt des Moduls und in seinen Prozeduren und Funktionen. Bei Units werden die lokalen Symbolinformationen zusammen mit dem Objektcode in der Unit-Datei gespeichert. Lokale Symbolinformationen vergrößern eine Unit-Datei. Das Compilieren von Programmen, die diese Unit verwenden, erfordert also mehr Speicher. Die Größe und die Ausführungsgeschwindigkeit der Programme werden aber nicht nachteilig beeinflusst. Wenn ein Programm oder eine Unit mit dieser Option (entspricht {$L+}) compiliert wird, können Sie die lokalen Variablen des Moduls im integrierten Debugger überprüfen und ändern. Außerdem können die Aufrufe von Prozeduren und Funktionen des Moduls über die Option Ansicht > Debug-Fenster > Aufruf-Stack überprüft werden. Mit den Optionen Debug-Informationen in separate TDS-Datei ausgeben und Map-Datei (auf der Seite Linken des Dialogfelds Projektoptionen) können nur lokale Symbolinformationen für Module erzeugt werden, die mit der aktivierter Option compiliert wurden. Diese Option wird normalerweise zusammen mit der Option Debug-Informationen eingesetzt, die die Erzeugung von Tabellen mit Zeilennummern zu Testzwecken steuert. Diese Option wird ignoriert, wenn die Option Debug-Informationen für den Compiler deaktiviert ist.

‑$L+
‑$L‑

Symbolreferenzinfo

Erzeugt für den Quelltext- Editor und die Projektverwaltung Informationen zu Symbolreferenzen. Entspricht der Delphi-Compiler-Direktive {$Y}.

  • Wenn Keine ({$Y-}) ausgewählt ist, werden keine Symbolreferenzinformationen aufgezeichnet.
  • Wenn Nur Definitionen aktiviert ist ({$YD}), zeichnet der Compiler Informationen darüber auf, wo die Bezeichner definiert sind.
  • Ist Referenzinfo aktiviert ({$Y+}), werden Informationen darüber aufgezeichnet, wo die Bezeichner definiert sind und verwendet werden.

Diese Option ist nur wirksam, wenn Debug-Informationen und Lokale Symbole (siehe oben) aktiviert sind.

Die Programmierhilfe und die Navigation durch Quelltext (Strg+Klick) arbeiten nur, wenn Symbolreferenzinfo auf Referenzinfo gesetzt ist.

‑$Y+
‑$YD
‑$Y‑

Mit Debug-DCUs

Die DCU-Dateien enthalten Debug-Informationen und werden mit Stack-Frames erzeugt. Ist diese Option aktiviert, fügt der Compiler automatisch den im Feld Quellpfad für Debugger auf der Seite Embarcadero-Debugger angegebenen Suchpfaden den Debug-DCU-Pfad hinzu.

Importierte Datenreferenzen verwenden

Aktiviert gepackte Units zum Referenzieren von Variablen in anderen Packages. Entspricht der Delphi-Compiler-Direktive {$G}.

‑$G+
‑$G‑

  • 32‑Bit-Windows
  • 64‑Bit-Windows
  • Mac OS X
  • iOS-Simulator

Weitere Optionen

Element Beschreibung Compiler-Optionen Alle Plattformen werden unterstützt (sofern nicht anders angegeben)

Weitere Optionen für die Übergabe an den Compiler

Geben Sie Compiler-Optionen ein, die Sie den Einstellungen hinzufügen möchten, die vom Dialogfeld "Projekt > Optionen" gesteuert werden. Verwenden Sie als Optionssymbol einen Bindestrich, und trennen Sie die Optionen durch Komma.

Universelle iOS-Binärdatei generieren (armv7 + arm64)

Der Compiler erstellt eine universelle Binärdatei für 32-Bit- und 64-Bit-iOS.
Vorgabe = False (nur eine 64-Bit-Binärdatei wird erstellt)

  • iOS-Gerät - 64 Bit

PIC-Code generieren

Wenn diese Option aktiviert ist, erzeugt der Compiler positionsunabhängige Objektcode-Units (PIC, Position-Independent Code) mit der Dateierweiterung .dpu. Diese Option entspricht der Compiler-Option -P.

Vorgabe = False

‑P

  • Mac OS X
  • iOS-Simulator

XML-Dokumentation erzeugen

Erzeugt eine Datei, die die XML-Repräsentation in Ihrem Projektverzeichnis enthält. Weitere Informationen finden Sie unter XML-Dokumentation für Delphi-Code.
Vorgabe = False

‑‑doc

Auch nach 8.3-Dateinamen suchen

Übergibt die Compiler-Option -P für DCC32.exe oder DCC64.exe.

Vorgabe = False

Ermöglicht die Verwendung von DOS-Dateinamen im alten Stil, die im Format Dateiname.ext vorliegen. Dateiname kann 1 bis 8 Zeichen lang sein.

Unterstützt auf 32-Bit- und 64-Bit-Windows-Plattformen.

‑P

  • 32‑Bit-Windows
  • 64‑Bit-Windows

Unit-Abhängigkeitsinformationen ausgeben

Übergibt die Compiler-Option -depends für DCC32.exe. Vorgabe = False

Wenn Sie diese Option aktivieren, wird eine Liste der rekursiv einbezogenen (#include) Header samt Zeitstempel aller CPP-Dateien in die OBJ-Datei eingebettet.

Mit diesen Informationen erzeugt das Build-System die OBJ-Datei neu, wenn einer der einbezogenen Header geändert wird.

Wenn die Option deaktiviert ist, enthalten OBJ-Dateien keine Autoabhängigkeitsinformationen und werden beim Ändern von Headern nicht neu erzeugt.

‑‑depends

$IF muss mit $IFEND abgeschlossen werden

Ermöglicht die Verwendung von $IFEND (anstatt des korrekten $ENDIF), um eine $IF-Klausel abzuschließen. Wenn diese Option nicht aktiviert ist, geben die Compiler eventuell den Fehler E2029 aus. Siehe die Compiler-Direktive LEGACYIFEND (Delphi).

Vorgabe = False

‑‑legacy-ifend

Ausgabeverzeichnis für XML-Dokumentation

Gibt den Ordner an, in dem die XML-Dokumentation für das Projekt erzeugt wird. Siehe die Option XML-Dokumentation erzeugen weiter oben.

‑NX

Optionen für Laufzeitfehler

Element Beschreibung Compiler-Optionen Alle Plattformen werden unterstützt (sofern nicht anders angegeben)

E/A-Prüfung

Aktiviert oder deaktiviert die automatische Code-Erzeugung, die nach jedem Aufruf einer E/A-Prozedur das Ergebnis überprüft. Wenn eine E/A-Prozedur bei aktivierter Option ein Ergebnis ungleich 0 zurückgibt, führt dies zu einer EInOutError-Exception (bzw. zum Programmabbruch, wenn die Exception-Behandlung nicht aktiviert ist). Ist die Option deaktiviert, muss die E/A-Operation durch einen Aufruf von IOResult auf Fehler geprüft werden.
Vorgabe = True

‑$I+
‑$I‑

Überlaufprüfung

Steuert die Erzeugung von Code für die Überlaufprüfung. Wenn die Option aktiviert ist (entspricht {$Q+}), werden bestimmte arithmetische Integer-Operationen (+, -, *, Abs, Sqr, Succ, Pred, Inc und Dec) auf einen Überlauf geprüft. Dazu wird ihnen zusätzlicher Code hinzugefügt, der sicherstellt, dass das Ergebnis innerhalb des unterstützten Bereichs liegt. Das Fehlschlagen der Überlaufprüfung führt zu einer EIntOverflow-Exception (bzw. zum Programmabbruch, wenn die Exception-Behandlung nicht aktiviert ist). Diese Option wird normalerweise zusammen mit der Option zur Bereichsüberprüfung ({$R}) eingesetzt, die die Erzeugung von Bereichsprüfungscode aktiviert bzw. deaktiviert. Die Aktivierung der Überlaufsprüfung vergrößert und verlangsamt Programme.

Vorgabe = False

‑$Q+
‑$Q‑

Bereichsüberprüfung

Aktiviert oder deaktiviert die Erzeugung von Bereichsprüfungscode. Wenn die Option aktiviert ist (entspricht {$R+}), werden alle Ausdrücke, die Arrays und Strings indizieren, dahingehend überprüft, ob sie sich innerhalb der festgelegten Grenzen befinden. Der gleichen Prüfung werden alle Zuweisungen an skalare Variablen und Teilbereichsvariablen unterzogen. Das Fehlschlagen der Bereichsprüfung führt zu einer ERangeError-Exception (bzw. zum Programmabbruch, wenn die Exception-Behandlung nicht aktiviert ist). Die Aktivierung der Bereichsprüfung vergrößert und verlangsamt Programme.

Vorgabe = False

‑$R+
‑$R‑

Optionen für die Syntax

Element Beschreibung Compiler-Optionen Alle Plattformen werden unterstützt (sofern nicht anders angegeben)

Zuweisbare typisierte Konstanten

Legt fest, ob typisierte Konstanten geändert werden können. Wenn die Option aktiviert ist (entspricht {$J+}), ist eine Änderung möglich. Typisierte Konstanten sind in diesem Fall mit initialisierten Variablen vergleichbar. Bei deaktivierter Option (entspricht {$J-}) sind typisierte Konstanten tatsächlich konstant. Jeder Versuch, sie zu ändern, führt zu einer Fehlermeldung des Compilers. Als schreibbar werden typisierte Konstanten bezeichnet, die zur Laufzeit als Variablen verwendet und somit geändert werden können. Deshalb muss älterer Quelltext, der änderbare typisierte Konstanten enthält, mit aktivierter Option compiliert werden, während für neue Anwendungen initialisierte Variablen verwendet werden sollten und der Quelltext mit deaktivierter Option compiliert werden sollte.

Vorgabe = False

‑$J+
‑$J‑

Vollständige Boolesche Auswertung

Schaltet zwischen zwei unterschiedlichen Modellen der Delphi-Quelltexterzeugung für die booleschen Operatoren AND und OR um. Wenn die Option aktiviert ist (entspricht {$B+}), erzeugt der Compiler Code für die vollständige Auswertung eines booleschen Ausdrucks. Das bedeutet, dass jeder Operand eines booleschen Ausdrucks, der mit den Operatoren AND und OR gebildet wird, garantiert ausgewertet wird, auch wenn das Ergebnis des gesamten Ausdrucks bereits feststeht. Bei deaktivierter Option (entspricht {$B-}) generiert der Compiler Code für die Kurzschlussauswertung boolescher Ausdrücke, d. h. die Auswertung wird beendet, sobald das Ergebnis des gesamten Ausdrucks feststeht (die Auswertung erfolgt immer von links nach rechts).

Vorgabe = False

‑$B+
‑$B‑

Erweiterte Syntax

Dient nur der Abwärtskompatibilität. Verwenden Sie diese Option (entspricht {$X-}) nicht in Ihren Delphi-Anwendungen. Mit dieser Option wird die erweiterte Syntax von Delphi aktiviert oder deaktiviert:

Funktionsanweisungen. Im Modus {$X+} können Funktionsaufrufe als Prozedurenaufrufe verwendet werden, d. h. das Ergebnis eines Funktionsaufrufs kann ignoriert werden, anstatt an eine andere Funktion übergeben oder in einer Operation bzw. Zuweisung verwendet zu werden. Im Allgemeinen werden die von einer Funktion ausgeführten Berechnungen durch das Funktionsergebnis repräsentiert, das nicht ignoriert werden sollte. Manchmal führen Funktionen aber lediglich eine bestimmte Operation durch (z. B. einer globalen Variablen einen Wert zuweisen) und geben keinen Wert zurück, der weiterverwendet werden kann.

Result-Variable. Wenn die Option aktiviert ist (entspricht {$X+}), kann die vordefinierte Result-Variable für den Rückgabewert der Funktion verwendet werden.

Nullterminierte Strings. Wenn diese Option aktiviert ist, können Delphi-Strings nullbasierten Zeichen-Arrays (array[0..X] of Char) zugewiesen werden, die mit PChar-Typen kompatibel sind.

Vorgabe = True

‑$X+
‑$X‑

Standardmäßig lange Strings

Diese Option (entspricht der Direktive {$H}) legt fest, welche Bedeutung das reservierte Wort string hat, wenn es ohne Zusatz in einer Typdeklaration steht. Der generische Typ string kann entweder einen langen, dynamisch zugewiesenen String (fundamentaler Typ UnicodeString) oder einen kurzen, statisch zugewiesenen String (fundamentaler Typ ShortString) darstellen. Durch die Standardeinstellung in Delphi wird der generische String-Typ als langer UnicodeString definiert.

Alle Objekte in der Komponentenbibliothek werden in diesem Status compiliert. Für neue Komponenten sollten ebenfalls lange Strings verwendet werden. Dasselbe gilt für Quelltext, der Daten aus String-Eigenschaften der Komponentenbibliothek übernimmt. Die deaktivierte Option (entspricht {$H-}) ist sinnvoll, wenn auf Quelltext aus älteren Versionen von Delphi zugegriffen wird, in dem standardmäßig kurze Strings verwendet werden. Die Bedeutung von String-Typdefinitionen kann lokal überschrieben werden, um die Erzeugung kurzer Strings sicherzustellen. Außerdem können kurze String-Typen als string[255] oder ShortString deklariert werden. Diese Typen sind eindeutig und von der aktivierten Option unabhängig.

Vorgabe = True

‑$H+
‑$H‑

  • 32‑Bit-Windows
  • 64‑Bit-Windows
  • Mac OS X
  • iOS-Simulator

Offene Parameter

Ist nur für Quelltext von Bedeutung, der mit Huge-Strings compiliert wurde. Diese Option dient der Abwärtskompatibilität mit früheren Versionen von Delphi und Object Pascal. Diese Option (entspricht der Direktive {$P}) legt die Bedeutung von Variablenparametern fest, die mit dem Schlüsselwort "string" im Status {$H-} (Huge-Strings deaktiviert) deklariert wurden. Bei deaktivierter Option (entspricht {$P-}) sind mit dem Schlüsselwort "string" deklarierte Variablenparameter normale Variablenparameter. Dagegen werden sie im Status {$P+} als offene String-Parameter behandelt. Der Bezeichner "OpenString" kann unabhängig von der Einstellung der Direktive $P immer zur Deklaration von offenen String-Parametern verwendet werden.

Vorgabe = True

‑$P+
‑$P‑

Strenge VAR-Strings-Prüfung

Diese Option (entspricht der Direktive {$V}) ist nur für Delphi-Quelltext von Bedeutung, in dem kurze Strings verwendet werden. Sie dient der Abwärtskompatibilität mit früheren Versionen von Delphi und Object Pascal. Die Option steuert den Typ für kurze Strings, die als Variablenparameter übergeben werden. Wenn die Option aktiviert ist (entspricht {$V+}), wird eine strenge Typprüfung durchgeführt, d. h. formale und tatsächliche Parameter müssen denselben String-Typ haben. Bei deaktivierter Option (entspricht {$V-}) kann eine Variable eines kurzen String-Typs selbst dann als Parameter verwendet werden, wenn die deklarierte Maximallänge nicht mit der des formalen Parameters übereinstimmt.

Vorgabe = True

‑$V+
‑$V‑

Typisierter @-Operator

Steuert die vom Operator @ generierten Zeigertypen und deren Kompatibilität. Bei deaktivierter Option (entspricht {$T-}) ist das Ergebnis des Operators @ immer ein Zeiger ohne Typ (Pointer), der mit allen übrigen Zeigertypen kompatibel ist. Wenn @ für einen Variablenverweis (entspricht {$T+}) verwendet wird, ist das Ergebnis ein typisierter Zeiger, der nur mit Pointer und anderen Zeigern auf den Variablentyp kompatibel ist. Bei deaktivierter Option sind bestimmte Zeigertypen (keine Pointer-Typen) nicht kompatibel (auch wenn sie Zeiger auf denselben Typ sind). Bei aktivierter Option sind Zeiger auf denselben Typ kompatibel.

Vorgabe = False

‑$T+
‑$T‑


Tipp: Wenn bei der Compilierung eines Projekts die Compiler-Optionen im Fenster Meldungen angezeigt werden sollen, wählen Sie Tools > Optionen > Umgebungsoptionen und aktivieren die Option Befehlszeile anzeigen. Beim nächsten Compilieren eines Projekts werden der Befehl, der zur Compilierung des Projekts verwendet wurde, und die Antwortdatei im Fenster Meldungen angezeigt. In der Antwortdatei sind die Compiler-Optionen und die zu compilierenden Dateien aufgeführt.

Siehe auch