Buchempfehlung
Windows-Programmierung. Das Entwicklerhandbuch zur WIN32-API
Windows-Programmierung. Das Entwicklerhandbuch zur WIN32-API
"Der" Petzold, das über 1000 Seiten starke Standardwerk zum Win32-API - besonders nützlich u. a. bei der GUI-Programmierung in FreeBASIC! [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!


Referenz - PASCAL

Referenz-Navigation

 

Syntax: [DECLARE] {SUB | FUNCTION} prozedurname PASCAL [OVERLOAD] [ALIAS "externerName"] [(parameterliste) ...] {AS rueckgabetyp} {CONSTRUCTOR [priorität]} [STATIC] [EXPORT]
Typ: Schlüsselwort
Kategorie: Fremdsprachen

Das Schlüsselwort PASCAL sorgt dafür, dass die Parameter bei einem Prozeduraufruf nach PASCAL-Konventionen übergeben werden. PASCAL gewährleistet die Kompatibilität zu PASCAL-Libs mit FreeBASIC.

Die PASCAL-Aufrufkonvention ist das Gegenteil der CDECL-Konvention. Die Parameter werden in der Reihenfolge von links nach rechts ( -> ) auf dem Stack abgelegt, und die aufgerufene Funktion muss den Stack vor dem Rücksprung mit RET XX (Return, Anzahl Byte) ausgleichen.

PASCAL ist die Aufrufkonvention, die standardmäßig in Microsoft QuickBASIC und in der API für Windows 3.1 verwendet wird.

Beispiel: Vergleich der verschiedenen Aufrufmöglichkeiten

Sub s StdCall (s1 As Integer, s2 As Integer)
    Print "StdCall ", s1, s2
End Sub
Sub c Cdecl (c1 As Integer, c2 As Integer)
    Print "Cdecl ", c1, c2
End Sub
Sub p Pascal (p1 As Integer, p2 As Integer)
    Print "Pascal ", p1, p2
End Sub


Asm
    push 2 '2. Parameter - s2
    push 1 '1. Parameter - s1
    Call s 'rechts nach links

    push 2 '2. Parameter - c2
    push 1 '1. Parameter - c1
    Call c 'rechts nach links
    Add esp, 8 'der Stack muss durch die aufrufende Funktion aufgeräumt werden

    push 1 '1. Parameter - p1
    push 2 '2. Parameter - p2
    Call p 'links nach rechts

End Asm

Sleep

Unterschiede zu QB: neu in FreeBASIC.

Siehe auch:
BefehlsreferenzeintragDECLARE, BefehlsreferenzeintragCDECL, BefehlsreferenzeintragSTDCALL


Zusätzliche Informationen und Funktionen
  • Der Referenzeintrag wurde am 07.08.2007 von MitgliedPMedia angelegt.
  • Die aktuellste Version wurde am 11.09.2011 von RedakteurMOD gespeichert.
  Versionen Versionen