Deutsch
Stammtisch & Café

Das Format des Headers eines Compilates.

 
Das Format des Headers eines Compilates, Roland lüftet ein Geheimnis.
Quelle: [...]  


Zunächst einmal: Das Format der Header eines Compilates (gilt nicht für compilierte Unit) ist relativ einfach: Da steht eben nur am Anfang RGH-PROFANx, wobei x derzeit ein Zeichen zwischen 2 und A ist und dem Runtime-Modul sagt, wie das Compilat zu interpretieren ist. (Dadurch ist es dem Runtime-Modul auch in Version 8.0a noch möglich, Compilate der Version 2.x zu verstehen.) Compilate der Version 8 haben hier entweder eine 9 oder ein A stehen, aus dem das Runtimemodul auf die Verschlüsselung $P+ oder $P* schließen kann. Mehr Infos stehen nicht im Header und eine Checksumme gibt es auch nicht.

Das Runtime-Modul liest nun das komplette Compilat ein und geht (im Normalfall) davon aus, daß dieses bis zum Dateiende geht. Kommt nun - etwa durch angehängte Daten - etwas, das nicht als compilierter Code interpretiert werden kann, erfolgt die bekannte Fehlermeldung.

Und jetzt das bislang gehütete Geheimnis:

Wenn als physikalisch letzte Programmzeile der undokumentierte Befehl PROGEND steht, wird das Compilat nur bis zu diesem Befehl eingelesen. Das heißt: Dann können an die PRC-Datei (oder auch an die gelinkte EXE-Datei) angehängt sein, ohne das Runtimemodul zu irritieren. Passend dazu gibt es die Systemvariable %PROGEND, die die Position in der Datei angibt, wo das Compilat aufhört und die Daten beginnen. (Da diese Systemvariable natürlich nur im compilierten Zustand Sinn macht, liefert %PROGEND im Interpreter immer -1 zurück.)

Bei Units gibt es diese Möglichkeit allerdings nicht.

Warum ist das ganze bislang undokumentiert? Die Möglichkeit, Daten an das Compilat bzw. an die compilierte EXE anzuhängen, habe ich seinerzeit (bei Profan 6.5) für Sven Schmidts und sein Programm TME geschaffen, das diese Funktion benötigte. Mit ihm hatte ich Stillschweigen über diese Funktion bewahrt und ich pflege mich nun mal an mein Wort zu halten. Da aber TME seit einigen Jahren nicht mehr weiterentwickelt wurde und inzwischen auf Svens Seite schon lange nicht mehr gelistet ist, glaube ich dieses Schweigen nun brechen zu dürfen. (Sven, bitte nicht schlagen!)

Gruß
Roland


Danke Roland!
 
21.05.2004  
 




RGH
Ergänzung für neuere XProfan-Versionen bezüglich des Headers:

Bei XProfan 9 steht im Header des Compilates RGH-PROFANB bzw. RGH-PROFANC. Da wegen Erweiterung auf mehr als 65535 Programmzeilen und Tempo-Optimierung das Format des Compilates geändert wurde, kann die XProfan9-Runtime Compilate früherer XProfan-Versionen nicht mehr verarbeiten und gibt eine entsprechende Fehlermeldung aus.

Bei XProfan 10 (und OGLBasic 1)steht im Header des Compilates RGH-PROFAND bzw. RGH-PROFANE. Da zahlreiche Schlüsselwörter wie z.B. Createxxx, dbxxx, etc. intern nicht mehr existieren und dafür nahezu ebensoviele neue hinzugekommen sind, die intern die selben Tokens verwenden, kann aus Sicherheitsgründen auch die XProfan10-Runtime Compilate früherer XProfan-Versionen nicht verarbeiten und gibt eine entsprechende Fehlermeldung aus.

Gruß
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
23.11.2006  
 



Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

5.363 Betrachtungen

Unbenanntvor 0 min.
Unbenannt21.05.2012
Andreas Koch21.03.2012
Paul Glatz11.08.2011

Themeninformationen

Dieses Thema hat 2 Teilnehmer:

RGH (1x)
unbekannt (1x)


Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie