Deutsch
Online-Dokumentation

Headerdateien Erklärung: Erkl

 
Wer C kennt, kennt auch die Headerdateien, dort üblicherweise mit der Endung .h. Ein ähnliches Konzept wurde nun auch in XProfan verwirklicht, hier mit der Endung .ph. Um die Headerdatei(en) anzugeben, die im Programm genutzt werden, nutzt man die Direktive $H:

$H windows.ph

Die XProfan-Headerdateien (*.ph) werden dort gesucht, wo auch die Includedateien gesucht werden. Die Einstellung des Includepfades gilt auch für die Header.

Die Headerdateien sind nichts anderes als Übersetzungstabellen. Bestimmte Ausdrücke im Programmtext, die dort durch ein ~ gekennzeichnet sind, werden durch andere vom Precompiler beim Einlesen des Programmes durch den Interpreter bzw. Compiler ersetzt. Auf diese Weise können z.B. die zahlreichen Konstanten, Strukturdefinitionen und API-Aufrufe in der Headerdatei beschrieben werden. Jede Zeile der Headerdatei hat vor dem Gleicheitszeichen den String der ersetzt werden soll und danach bis zum letzten Semikolon der Zeile den XProfan-Ausdruck, durch den er ersetzt wird.

Als Beispiel ein Headerdateiauszug aus WINDOWS.PH:

' Konstanten für ShowWindow

SW_HIDE = 0;
SW_SHOWNORMAL = 1;
SW_NORMAL = ~SW_SHOWNORMAL; ' alte Form
SW_SHOWMINIMIZED = 2;
SW_SHOWMAXIMIZED = 3;
SW_MAXIMIZE = ~SWSHOWMAXIMIZED;
SW_SHOWNOACTIVATE = 4;
SW_SHOW = 5;
SW_MINIMIZE = 6;
SW_SHOWMINNOACTIVE = 7;
SW_SHOWNA = 8;
SW_RESTORE = 9;

SW_SHOWDEFAULT = $0A;
SW_MAX = $0A;

ShowWindow( = External("user32.dll","ShowWindow",;

Kommentare werden - wie in XProfan selbst - durch ein ' gekennzeichnet, das REM ist nicht erlaubt. Was zwischen Gleichheitszeichen und dem letzten Semikolon steht, muss in XProfan interpretierbar sein. Es dürfen allerdings wiederum Ersetzungsausdrücke, gekennzeichnet durch das ~, vorkommen.

Das dazugehörige XProfan-Programm könnte dann wie folgt aussehen:

$H windows.ph

Cls
~ShowWindow(%hWnd, ~SW_MAXIMIZE)

Ebenso können Strukturdefinitionen in einer Headerdatei untergebracht werden:

RECT = Top&,Left&,Right&,Bottom&;

Im Programm könnte dann stehen:

Declare Rechteck#
Struct TRECT = ~RECT
Dim Rechteck#,TRECT

With Rechteck#
.Top& = 10
.Left& = 120
.Right& = 35
.Bottom& = 100

EndWith

Hiermit sind die Möglichkeiten der Headerdateien nur ansatzweise angedeutet! Eine Umsetzung der Datei WINDOWS.PAS aus Delphi mit nahezu allen Definitionen der Windowskonstanten und -Funktionen liegt bei. Ebenso einige anderen Headerdateien mit Messages, Strukturen, etc. Wenn diese Dateien eingebunden sind, wird die Nutzung der Windows-API erheblich vereinfacht. Aber auch außerhalb der Nutzung fremder DLLs ergeben sich zahlreiche Möglichkeiten.

Ach ja: Der Vorteil der Headerdatei gegenüber einer Includedatei mit Konstanten und DEFs? Die Includedatei wird immer komplett mitkompiliert und vergrößert das fertige Programm. Die Headerdatei taucht im Kompilat ÜBERHAUPT NICHT auf. Alle Ersetzungen werden beim Compilieren direkt vorgenommen. Das dürfte sich auch sehr positiv auf die Ausführungsgeschwindigkeit auswirken. Dafür dauert das Starten im Interpretermodus und das Compilieren etwas länger.

Hinweis: Die in einer Struktur verwendeten Variablentypen werden durch ihr Postfix, ähnlich der XProfan-Variablen gekennzeichnet. % steht für eine 2-Byte-Variable (Word), & steht für eine 4-Byte-Variable (Long), # steht für eine beliebige Größe, die in Klammern angegeben wird, und $ für eine String-Variable. Näheres siehe hier! Das "H" (Compilerschalter $H) muss groß geschrieben sein!
 
10.07.2006  
 



Hinweis/ Anmerkung/ Frage zum Hilfethema


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

493 Betrachtungen

Unbenanntvor 0 min.
Torsten Boo15.05.2021
Joerg29.06.2016

Themeninformationen

Dieses Thema hat 1 Teilnehmer:

iF (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