| |
|
|
 | Vorwort
XPSE bietet besonders par cela Einbetten de neuen Kompilerschaltern dans den Voir le texte source, qui Possibilité, indépendant de qui IDE qui Behandlungsroutinen pour jeden Voir le texte source individuel festzulegen. ca klingt très theoretisch - bewährt sich cependant vollautomatisch chez qui täglichen Programmation.
il peut somit dedans des Quelltextes festlegen, comment qui Voir le texte source behandelt volonté, bzw. quoi alles beim/pour dem Kompilieren geschehen soll.
Simple Beispiele hierfür sommes:
· pour dem Erstellen qui Exe soll cet à une autre Stelle kopiert volonté (Batchsupport) · cette Source ist toujours avec Prf2Cpp trop kompilieren · cet Programme soll un bestimmtes ICON ou bien une bestimmte Ressourceinformation tragen
Werden qui Compilerschalter im Voir le texte source angegeben, somit sommes cet zusätzlich zur Syntax de XProfan (un Dollarzeichen "$") par geschweifte Klammern einzurahmen. un XPSE- Kompilerschalter sieht demzufolge z.B. so aus: {$debug} ou bien {$c} ou bien {$cleq}
qui Kompilerschalter peut beliebig im Voir le texte source verteilt volonté, normalement mets on Kompilerschalter cependant à den Anfang eines Quelltextes. Kompilerschalter peut avec einem REM-Befehl deaktiviert volonté. qui Angabe de Kompilerschaltern ist pas cas-Sensitive.
Je pour Typ des Schalters addieren sich entweder qui auszuführenden Optionen, ou bien vous volonté par qui dernier gültige Angabe überschrieben. (je crois cette phrase versteht on seulement si on sich qui commutateur angesehen hat)
qui Kompilerschalter im Einzelnen
Shorties
| Shorties sommes Kompilerschalter quelle aus seulement einem Buchstaben bestehen et qui Besonderheit avons, aussi miteinander dedans einer Kompilerschalteranweisungszeile verknüpft trop volonté. c'est alors pas nötig z.B. dans qui ersten la ligne {$C} et dans qui zweiten la ligne {$L} trop écrivons, mais Shorties peut derart verknüpft volonté: {$CLEQ}. chez Shorties écoutes aussi qui Reihenfolge qui Angaben aucun rôle là XPSE selbst bestimmt quelle Reihenfolge qui schlüssigste ist. Es pouvoir alors keinen Unterschied si {$CLEQ} ou bien {$QLCE} geschrieben wird. qui Vue d'ensemble halber ist cependant empfohlen qui commutateur aussi dans qui logischen Abfolge anzugeben. un Linken pouvoir z.B. seulement pour dem Compilieren Sinn, et cela Starten qui Exe erfolgt beispielsweise aussi pas avant dem Linken.
{$C} <i>Compile</i> | qui Voir le texte source ist trop kompilieren. Hierbei sommes aussi autre Compilerschalter - quelle sich sur den Vorgang des Kompilierens beschränken - trop tenir compte de.
| {$E} <i>Exe</i> | Pour dem Linken qui erzeugte Exe starten.
| {$I} <i>Interprete</i> | Voir le texte source im Interpretermodus starten.
| {$L} <i>Link</i> | Pour dem Kompilieren linken.
| {$Q} <i>Quietmode</i> | si ne...aucune Error beim Operieren auftrat schließt sich XPSE vollautomatisch pour verrichteter travail.
| {$R} <i>Run</i> | Pour dem Kompilieren wird qui kompilierte PRC gestartet.
| {$S} <i>ShowSource</i> | Erzeugten reinen XProfan-Voir le texte source Montrer.
|
| qui anderen Kompilerschalter (Non-Shorties) | cet Kompilerschalter doit jeweils dans einer eigenen la ligne stehen. Es peut aussi pas plusieurs Compilerschalter avec Befehlstrennungszeichen dedans einer individuel la ligne angegeben volonté. quelques Kompilerschalter erwarten une paramètre. qui Angabe eines nötigen Paramètres ist avec A gekennzeichnet.
>batch {$BATCH A} | Führt A pour dem Abarbeiten qui Compilerschalter aus. A peux sur une Batchdatei ou bien sur un Programme montrer, ou bien direct un Batchbefehl son. Es peux seulement un Batchbefehl angegeben volonté, quoi z.B. chez $INCLUDEPATH anders ist. TIP: Beim Angeben de Pfaden ou bien Dateinamen quelle un Freizeichen beinhalten devrait Anführungszeichen verwendet volonté à Pfad+Dateiangaben einzuschließen. c'est aucun XPSE-Maßgabe mais CMD erfordert ca.
'Beispiel:
{$cleq}
{$batch copy "C:XProfan1.exe" "C:1.exe"}
| >compiler {$COMPILER A} | Legt Dossier A comme Compiler zum Kompilieren des Quelltextes fest. A peux direct sur une profcomp.exe montrer, ou bien sur un Verzeichnis. si Beispielsweise dans einem Unterverzeichnis nommé P8 qui trop verwendende Kompiler liegt, reicht folgende Angabe: {$COMPILER P8}. bien sûr peux aussi qui gesammte Pfad angegeben volonté. par cette Kompilerschalter ist es possible dedans des Quelltextes den avec cela trop verknüpfenden Compiler anzugeben - quoi wiederum besonders im Umgang avec speziell-angefertigten-Runtimes im Bezug sur Ressourcen nützlich ist, car pas chacun Runtime peux chaque Kompilat interpretieren. Wird cette Kompilerschalter près de dem Kompilerschalter {$CPP} angegeben - so wird {$CPP} fonctionnement - et pas qui sous A angegebene Kompiler. {$CPP} ist alors stärker.
| >cpp {$CPP} | Übergibt den Voir le texte source statt à den XProfan-Kompiler à Prf2Cpp . qui Übergabe erfolgt naturellement seulement si im Voir le texte source aussi angewiesen ist cela qui Voir le texte source trop Kompilieren {$C} ist.
| >debug {$DEBUG} | cette commutateur bewirkt cela XPSE den Source derart umschreibt, cela sich cela Programme au cours de qui Ausführung la ligne pour la ligne selbst aufschreibt. qui Ausgabe landet dans qui gleichnamigen Dossier avec qui Endung .debug.
Hierbei ist trop tenir compte de, cela qui .debug-Dossier im Verzeichnis qui PRF-Dossier angelegt wird - et pas im eventuell abweichendem Ausführungsverzeichnis. ca est un Sicherheitsaspekt quel verhindern soll cela chez versehendlicher Weitergabe einer Debugversion qui Voir le texte source dans cela Ausführungsverzeichnis geschrieben wird - et somit qui Voir le texte source dans Abarbeitungsreihenfolge par jeden einsehbar wäre.
Derartiges Debuggen ist besonders daher intéressant - là XPSE avec cela aussi Verschachtelungen des Quelltextes sichtbar pouvoir - et on chez einem möglichen Programmabsturz oui c'est ca sieht quelle la ligne dans quel Procédure pour den Absturz responsable était. Es gilt: seulement wird qui la ligne pour .debug geschrieben, et ensuite fonctionnement.
optionnel peux aussi {$DEBUG ONLYPROCS} verwendet volonté. qui Ausgabe wird puis eingeschränkt seulement Prozeduraufrufe et cela sortir de de Prozeduren trop protokollieren.
| {$DEBUG KERNELOUT} | cette commutateur bewirkt cela XPSE den Source derart umschreibt, cela sich cela Programme au cours de qui Ausführung la ligne pour la ligne selbst aufschreibt. qui Ausgabe landet cependant pas dans einer Dossier mais peux avec einem Debugviewer angezeigt volonté. ici empfehle je DebugView de Sysinternals: https://www.sysinternals.com/Utilities/DebugView.html dans allen anderen Aspekten gleicht cette commutateur dem {$DEBUG} - commutateur. optionnel peux aussi {$DEBUG KERNELOUT ONLYPROCS} verwendet volonté. qui Ausgabe wird puis eingeschränkt seulement Prozeduraufrufe et cela sortir de de Prozeduren trop protokollieren.
| >includepath {$INCLUDEPATH A} | Fügt A sur den Stapel qui trop durchsuchenden Pfade pour Includedateien hinzu. Es peut jusque 5 zusätzliche Pfade angegeben volonté. qui im ProfanEditor angegebenen Includepfade volonté automatisch sur {$INCLUDEPATH} eingebunden.
| >log {$LOG} | Operationen comment z.B. Linken ou bien Kompilieren, qui cette Voir le texte source betreffen, volonté dans qui xpse.log geschrieben.
| >mapfile {$MAPFILE} | cette commutateur übergibt den Kommandozeilenparameter "-M" à den XProfanCompiler plus. Nähere Erläuterungen quoi "-M" bedeutet ist qui XProfanhilfe (ab Version 9) => "Mapdatei" trop entnehmen. Im MapFile steht quelle Zeilennummer quel Dossier (aussi Comprend et Unités) angehört.
| >noerr {$NOERR} | cette commutateur bewirkt cela Warnings et Errors gänzlich übersehen volonté, si un Weiterarbeiten avec XPSE aussi ensuite gewährleistet ist si XPSE quelque chose pas versteht quoi mais syntaktisch korrekt ist. (Mögliche Neuerungen dans qui XProfansprache selbst etc...)
| >nodef {$NODEF} | Betrifft seulement Unités, es wird ne...aucune .def-File et ne...aucune .hlp.html-File angelegt. Sollte une qui Fichiers vorhanden son wird vous gelöscht.
| >nosectioncheck {$NOSECTIONCHECK} | cette commutateur schaltet qui Sektionskontrolle ab. Hiermit ist gemeint cela faute comment: geduldet volonté. de qui Nutzung des Schalters taux je ab. Es peux cependant qui Situation auftreten cela on z.B. dedans einer älteren Includedatei z.B. Prozeduren dedans de IF-Blöcken deklariert hat. Um une Abbruch aller Vorgänge dans diesem le cas entgegenzuwirken ist cette Kompilerschalter anzuwenden.
| >runtime {$RUNTIME A} | Legt Dossier A comme Runtime zum Linken et/ou bien zum Effectuer fest. A peux direct sur une prfrun32.exe montrer, ou bien sur un Verzeichnis. si Beispielsweise dans einem Unterverzeichnis nommé P8 qui trop verwendende Runtime liegt, reicht folgende Angabe: {$RUNTIME P8}. bien sûr peux aussi qui gesammte Pfad angegeben volonté. par cette Kompilerschalter ist es possible dedans des Quelltextes qui avec cela trop verknüpfende Runtime anzugeben - quoi besonders im Umgang avec speziell- angefertigten-Runtimes im Bezug sur Ressourcen nützlich ist.
| >prebatch {$PREBATCH A} | Führt A avant dem Abarbeiten qui Compilerschalter aus. A peux sur une Batchdatei ou bien sur un Programme montrer, ou bien direct un Batchbefehl son. Es peux seulement un Batchbefehl angegeben volonté, quoi z.B. chez $INCLUDEPATH anders ist. TIP: Beim Angeben de Pfaden ou bien Dateinamen quelle un Freizeichen beinhalten devrait Anführungszeichen verwendet volonté à Pfad+Dateiangaben einzuschließen. c'est aucun XPSE-Maßgabe mais CMD erfordert ca.
'Beispiel:
{$cleq}
{$prebatch copy "C:XProfan1.exe" "C:1.exe"}
| >preferednamespace {$PREFEREDNAMESPACE A} <iMg src='images/pxt.gif' width=189 height=1/> | vieilli. Siehe <a href='#unit'>{$unit}. Legt den bevorzugten Namensraum cette Unit sur A fest. A wird ensuite dans qui Automatisch erzeugten Aider (.hlp.htm-Dossier) zum eigendlichen Identifier angezeigt. cette Kompilerschalter hat cependant encore une anderen wichtigen Zweck chez qui Herstellung de Unités! XPSE wandelt API's aus Headern dans directe Call 's um. avec cela qui Funktionsadressen pas avec denen aus anderen Unités, ou bien avec denen aus dem Hauptprogramm kollidieren wird den Variablen quelle sich cet Funktionsadressen cela Prefix A vorangestellt. dans Unités ist cette commutateur somit devoir. mais aucun Sorge, XPSE meckert si ihm quoi pas passt. :)
Siehe aussi export , noexport et unitsupport .
| >pushkeyword {$PUSHKEYWORD A} | A peux un einzelnes Keyword, ou bien une Aufzählung de Keywords son quelle avec Komma voneinander getrennt volonté. cette Kompilerschalter est un Veralterungsschutz des XPSE. avec dem commutateur peux on XPSE expliquer cela qui angegebenen KeyWords zum Sprachschatz gehören. qui commutateur pourrait z.B. dans einer INC vorkommen quelle eingebunden wird, ou bien aussi comme Beilage trop einer Unit dienen à y enthaltenen Befehle aufzuzeigen.
| >res {$RES A} | A peux un einzelnes Keyword, ou bien une Aufzählung de Keywords son quelle avec Komma voneinander getrennt volonté. cette Kompilerschalter legt fest cela bestimmte Ressourcen qui Exe avec XPRR (XProfan Ressource Rebuilder de Frank Abbing https://frabbing.de ) modifié volonté devoir. cela peut z.B. cela Exeicon, qui Versionsinformation, cela Fenstericon ou bien autre Ressourcen son.
NOMANIFEST NOVERSIONINFO
ICON » WINDOWICON » EXEICON » COMPANYNAME » FILEDESCIPTION » FILEVERSION "1.0.0.0" INTERNALNAME » LEGALCOPYRIGHT » LEGALTRADEMARK » ORIGINALFILENAME » PRODUCTNAME » PRODUCTVERSION "1.0.0.0"
Syntax 1:
{$res productname "meinProduktname"}
{$res icon "test.ico"}
Syntax 2:
{$res productname "meinProduktname", icon "test.ico", productversion "1.0.0.0", ...}
Frank Abbing:
je voudrais nochmal deutlicher expliquer, comment XPRR mittels XPSE benutzt volonté peux:<bR/><bR/><tAbLe style="border:dotted;color:#6666FF" cellspacing=5 cellpadding=5><tR><td><font size=2><b>Icon Resource:</b><bR/><bR/><u>Fenstericon et Exeicon changement:</u><bR/>{$res icon "dateiname.ico" [icongröße] [mindest-icon-bittiefe]}<bR/><bR/><u>Nur Fenstericon changement:</u><bR/>{$res windowicon "dateiname.ico" [icongröße] [mindest-icon-bittiefe]}<bR/><bR/><u>Nur Exeicon changement:</u><bR/>{$res exeicon "dateiname.ico" [icongröße] [mindest-icon-bittiefe]}<bR/><bR/>Die Icongrösse darf être omis, dans dem le cas wählt XPRR aus einer Mehrfach-Icon-Dossier cela dernier Icon aus. Gültige Grössen sommes z.B.: 16, 24, 32, 48, 64, 128, ...<bR/>Die Mindest-Icon-Bittiefe darf être omis, dans dem le cas wählt XPRR aus einer Mehrfach-Icon-Dossier cela dernier Icon aus. Gültige Bittiefen sommes:<bR/>1=2 la couleur, 4=16 Farben, 8=256 Farben, 24=True Color (24 Bits), 32=True Color+Alpha (32 Bits)</font></tR></tD></tAbLe><bR/><tAbLe style="border:dotted;color:#6666FF" cellspacing=5 cellpadding=5><tR><td><font size=2><b>Manifest Resource 24:</b><bR/><bR/><u>Manifest-resource entfernen:</u><bR/>{$res nomanifest}</font></tR></tD></tAbLe><bR/><tAbLe style="border:dotted;color:#6666FF" cellspacing=5 cellpadding=5><tR><td><font size=2><b>Version-Info Resource:</b><bR/><bR/><u>Version-Resource entfernen:</u><bR/>{$res noversioninfo}<bR/><bR/><u>Einzelne Rubriken qui Version-Resource erstellen:</u><bR/>{$res companyname "Firmenname"}<bR/>{$res filedescription "Dateibeschreibung"}<bR/>{$res fileversion "Dateiversion"}<bR/>{$res internalname "Dateiname"}<bR/>{$res legalcopyright "Copyright-Beschreibung"}<bR/>{$res legaltrademark "Trademark-Beschreibung"}<bR/>{$res originalfilename "Originaler Dateiname"}<bR/>{$res productname "Name qui Anwendung"}<bR/>{$res productversion "Anwendungsversion"}<bR/><bR/>Jede Rubrik darf maximum 256 marque long son.<bR/>FILEVERSION et PRODUKTVERSION doit toujours vierstellig Werte son, getrennt par une Punkt.une entier ordinäre Version 1 devrait ensuite so air: 1.0.0.0, quoi sous Windows Major.Minor.Build.QFE bedeutet.</font></tR></tD></tAbLe><bR/>Für alle XProfan-Exedateien, qui avec XPRR bearbeitet volonté devoir gilt:<bR/><bR/><b>Im gleichen Dossier comment qui Profan-Exedatei muss sich aussi qui PRC-Dossier cette Exe befinden!!! XPRR muss cet beiden Fichiers pour getaner travail manuel récente verlinken.</b><bR/><bR/>XPSE ist dans qui situation, plusieurs XPRR-Anweisungen dans einer la ligne abzuarbeiten, getrennt par Kommata.<bR/>XPRR sollte sich im gleichen Dossier befinden comment XPSE.<bR/><bR/>
| >unit {$UNIT A} | Legt den bevorzugten Namensraum cette Unit sur A fest et teilt dem XProfanKompiler sur $L automatisch avec cela es sich um une Unit handelt. $L entfällt alors. A wird dans qui Automatisch erzeugten Aider (.hlp.htm-Dossier) zum eigendlichen Identifier angezeigt. cette Kompilerschalter hat cependant encore une anderen wichtigen Zweck chez qui Herstellung de Unités! XPSE wandelt API's aus Headern dans directe Call 's um. avec cela qui Funktionsadressen pas avec denen aus anderen Unités, ou bien avec denen aus dem Hauptprogramm kollidieren wird den Variablen quelle sich cet Funktionsadressen cela Prefix A vorangestellt. dans Unités ist cette commutateur somit devoir. mais aucun Sorge, XPSE meckert si ihm quoi pas passt. :)
Siehe aussi export , noexport et unitsupport .
|
| Kompilerschalter comme Kommandozeilenparameter | Kompilerschalter comme Kommandozeilenparameter volonté ignoriert. Aus kompatiblitätsgründen trop verschiedenen IDE's ist qui Angabe de Kompilerschaltern per Kommandozeilenparameter zwar possible, so cela XPSE cet erkennt et avec cela quand même den "richtigen" Dateinamen ermitteln peux, mais qui übergebenen commutateur volonté Aufgrund qui möglichen Konflikte avec Kompilerschaltern im Voir le texte source übergangen. Folgende Kommandozeilenparameter quelle aus den verschiedenen IDE's bekannt sommes volonté erkannt et terminiert: -E -B -L -S -R -M -V -LINK
il y a cependant speziell pour XPSE Kommandozeilenparameter quelle pas ignoriert volonté. Hierzu plus im paragraphe "Kommandozeilenparameter".
|
|
|
|
| |
|
|