Kompilerschalter
Shorties
Include/ #Include {$BATCH} {$CODESTORE} {$COMPILER} {$CPP} {$DEBUG} {$INCLUDEPATH} {$INTERPRETER} {$LOG} {$MAPFILE} {$NOERR} {$NODEF} {$NOTMP} {$NOSECTIONCHECK} {$RUNTIME} {$PREBATCH} {$PUSHKEYWORD} {$UNIT} ShortiesShorties 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).
Include/ #IncludeInkludiert 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 KompilerschalterDiese 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}
|