Italia
Online-Documentazione

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 per die Testata.

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 Programmi 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 per 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 potuto 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 potuto 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 File WINDOWS.PAS aus Delphi mit nahezu allen Definitionen der Windowskonstanten und -Funktionen liegt bei. Ebenso einige anderen Headerdateien mit Messages, Strukturen, etc. Wenn diese File eingebunden sind, wird die Nutzung der Windows-API erheblich vereinfacht. Aber auch außerhalb der Nutzung fremder DLL ergeben sich zahlreiche Möglichkeiten.

Ach ja: Der Vorteil der Headerdatei opposto 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 potrebbe 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 per eine 2-Byte-Variable (Word), & steht per eine 4-Byte-Variable (Long), # steht per eine beliebige Dimensione, die in Klammern angegeben wird, und $ per eine String-Variable. Particolari siehe hier! Das "H" (Compilerschalter $H) muss grande geschrieben sein!
 
10.07.2006  
 



Note / Question or Comment to the Help--Topic


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

492 Views

Untitledvor 0 min.
Torsten Boo15.05.2021
Joerg29.06.2016

Themeninformationen

Dieses Thema hat 1 subscriber:

iF (1x)


Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


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