XPSE
Copyright © 1998-2011 XProfan.Com, built DE.

 Funktionsreferenz   Download   Forum   Kontakt   


Kompilerschalter


Shorties

Shorties sind Kompilerschalter welche aus nur einem Buchstaben bestehen und die Besonderheit haben, auch miteinander innerhalb einer Kompilerschalteranweisungszeile kombiniert werden zu können.

So entstehen die Klassiker {$CLEQ} für Kompilieren, Linken, Exe starten, Quiet (Ruhe) und {$iq} für Interpretieren, Quiet (Ruhe).

SchalterFunktion
{$C} Compile Der Quelltext ist zu kompilieren.
{$L} Link Nach dem Kompilieren linken.
{$E} Exe Nach dem Linken die erzeugte Exe starten.
{$Q} Quietmode Schliessen wenn keine Warnungen/Errors.
{$I} Interprete Quelltext im Interpretermodus starten.
{$R} Run PRC mit Runtime starten.
{$S} ShowSource Zeigt den übersetzen Quelltext.
{$T} NoTempFiles Entfernt automatisch temporäre Dateien, Shorty für {$notemp}.

Include/ #Include

Inkludiert Quelltextdateien, Headerdateien und Units, je nach Dateiendung automatisch. Wird "include" mit Raute angeführt: "#include", dann wird die angegebene Datei nicht eingebunden, wenn sie bereits zuvor schon einmal mit #include eingebunden wurde. (Wird nur ein Mal eingebunden, ähnlich wie PHP's "include_once".)

Weitere Kompilerschalter

Diese Kompilerschalter müssen jeweils in einer eigenen Zeile stehen. Einige Kompilerschalter erwarten einen Parameter. Die Angabe eines nötigen Parameters ist mit param gekennzeichnet.

{$BATCH param}

Führt param nach dem Abarbeiten der Kompilerschalter aus, wird {$PREBATCH param} verwendet dann wird param vor dem Abarbeiten der Kompilerschalter ausgeführt. Param kann auf eine Batchdatei oder auf ein Programm zeigen, oder direkt ein Batchbefehl sein. Bei Angaben von Pfaden oder Dateinamen welche ein Freizeichen beinhalten, sollten Anführungszeichen verwendet werden.

'Beispiel:
{$cleq}
{$batch copy "C:\xprofan\1.exe" "C:\1.exe"}

{$CODESTORE}

Legt den Quellcode leicht komprimiert in den Quellcode ab, mit Aufruf der Funktion __codeStore.Export() kann der Quellcode wiederhergestellt werden. Es muss - wenn {$codestore} gesetzt - eine Funktion __codeStore.Question() angelegt werden, welche entweder 12345 oder 22345 zurückliefert, wenn der Quelltext in eine Datei geschrieben oder als String von __codeStore.Export() zurückgeliefert werden soll. In der __codeStore.Question() kann z.B. auch eine Passwortabfrage erfolgen. Setzt man beim zu verteilenden Release den Schalter {$CODESTORE}, dann kann man den Quellcode (zur Not) auch dann immer wieder herstellen, wenn man ihn verloren hat also obwohl man ("nur") noch die Exe hat. Je nach dem, was man in der __codeStore.Question() programmiert, legt man damit fest, ob der Quelltext jedem oder z.B. nur per Passwort zurückgegeben werden soll. Export des Quelltextes indem man __codeStore.Export() aufruft, die Funktion __codeStore.Question() stellt die Sicherheitsabfrage dar.

{$COMPILER param}

Legt param als Kompiler fest, praktisch wenn man mit verschiedenen Kompilern arbeitet oder ein Programm nur von einem bestimmten Kompiler kompiliert wird.

{$CPP}

Übergibt den Quelltext statt an den XProfan-Kompiler, an Profan2Cpp. Sinnvoll nur in Kombination mit dem Schalter {$C} wobei hier auf {$L} verzichtet werden kann, da hier nicht per XProfan gelinkt wird sondern Profan2Cpp die Anweisung zum Linken gibt.

{$DEBUG}

Bei gesetztem Schalter können per

debug "MeineAusgabe"

Mitteilungen an den Debugviewer gesandt werden, native Funktionen senden nach jeder Programmzeile einen Register und Stack-Dump an den Debugviewer und die Nummer des Haltepunktes.

{$INCLUDEPATH param}

Fügt param auf den Stapel der zu durchsuchenden Pfade für Includedateien hinzu. Es können bis zu 5 zusätzliche Pfade angegeben werden. Die im ProfanEditor angegebenen Includepfade werden automatisch über {$INCLUDEPATH} eingebunden.

{$INTERPRETER param}

Legt param als Interpreter fest, praktisch wenn man mit verschiedenen Interpretern arbeitet oder ein Programm von einem bestimmten Interpreter ausgeführt werden soll.

{$LOG}

Operationen wie Linken oder Kompilieren, die diesen Quelltext betreffen, werden in die xpse.log geschrieben.

{$MAPFILE}

Schalter übergibt den Kommandozeilenparameter "-M" an den XProfan-Kompiler weiter. (Mapdatei) Im MapFile steht welche Zeilennummer welcher Datei (auch Includes und Units) angehört.

{$NOERR}

Fehler im Quelltext ignorieren.

{$NODEF}

Units: Es wird keine .def-File und .hlp.html-Datei angelegt und wenn vorhanden gelöscht.

{$NOTMP}

Entfernt automatisch temporäre Dateien - Shorty {$T}.

{$NOSECTIONCHECK}

Dieser Schalter schaltet die Sektionskontrolle ab. Hiermit ist gemeint das Fehler wie:

proc
if
endproc
endif

geduldet werden. Von der Nutzung des Schalters ist grundsätzlich abzuraten.

{$RUNTIME param}

Legt param als Runtime fest, praktisch wenn man mit verschiedenen Runtimes arbeitet oder ein Programm nur von einer bestimmten Runtime ausgeführt wird.

{$PREBATCH param}

Führt param vor dem Abarbeiten der Kompilerschalter aus. param kann auf eine Batchdatei oder auf ein Programm zeigen, oder direkt ein Batchbefehl sein. Es kann nur ein Batchbefehl angegeben werden, was z.B. bei $INCLUDEPATH anders ist. TIP: Beim Angeben von Pfaden oder Dateinamen welche ein Freizeichen beinhalten sollten Anführungszeichen verwendet werden um die Pfad+Dateiangaben einzuschließen. Das ist keine XPSE-Maßgabe sondern CMD erfordert dies.

'Beispiel:
{$cleq}
{$prebatch copy "C:\xprofan\1.exe" "C:\1.exe"}

{$PREFEREDNAMESPACE param}
(veraltet, siehe {$unit})

Legt den bevorzugten Namensraum dieser Unit auf param fest. param wird dann in der Automatisch erzeugten Hilfe (.hlp.htm-Datei) zum eigendlichen Identifier angezeigt.

{$PUSHKEYWORD param}

Param kann ein einzelnes Keyword, oder eine Aufzählung von Keywords sein welche mit Komma voneinander getrennt werden. Mit dem Schalter kann man Schlüsselworte als existent definieren.

{$UNIT param}

Legt den bevorzugten Namensraum dieser Unit auf param fest und teilt dem XProfan-Kompiler über $L automatisch mit, dass es sich um eine Unit handelt. $L entfällt also wenn {$unit param} angegeben ist. param wird auch in der Automatisch erzeugten Hilfe (.hlp.htm-Datei) zum eigendlichen Identifier angezeigt. Dieser Kompilerschalter hat jedoch noch einen anderen wichtigen Zweck bei der Herstellung von Units. XPSE wandelt API's aus Headern in direkte Call 's um. Damit die Funktionsadressen nicht mit denen aus anderen Units, oder mit denen aus dem Hauptprogramm kollidieren, wird den Variablen der Funktionsadressen das Präfix param vorangestellt. In Units ist dieser Schalter somit Pflicht.

Siehe auch: export , noexport und Unitsupport

Kompilerschalter als Kommandozeilenparameter

Kompilerschalter als Kommandozeilenparameter werden ignoriert. Aus kompatiblitätsgründen zu verschiedenen IDE's ist die Angabe von Kompilerschaltern per Kommandozeilenparameter zwar möglich, so das XPSE diese erkennt und damit trotzdem den "richtigen" Dateinamen ermittelt, aber die übergebenen Schalter werden Aufgrund der möglichen Konflikte mit Kompilerschaltern im Quelltext verhindert. Folgende Kommandozeilenparameter, welche aus den verschiedenen IDE's bekannt sind, werden erkannt und verhindert: -E -B -L -S -R -M -V -LINK



 Textversion  English  XPSE© - Präkompilierer für XProfan
© 1998 - 2011 XProfan.Com