PROCPTR

FreeBASIC-Referenz » Alphabetische Befehlsreferenz » P » PROCPTR

Syntax: PROCPTR (Prozedurname)
Typ: Funktion
Kategorie: Pointer

PROCPTR gibt die Adresse einer Prozedur (SUB oder FUNCTION) im Speicher zurück. Diese Funktion lässt sich auch durch die Form

@Prozedurname

ersetzen.

Beispiel 1:

DECLARE SUB dummy

PRINT PROCPTR(dummy)
PRINT @dummy
SLEEP

SUB dummy
   ' ...
END SUB

Beispiel 2:

Declare Function Addieren(x As Integer, y As Integer) As Integer
Declare Function Subtrahieren(x As Integer, y As Integer) As Integer
Dim myFunction As Function(x As Integer, y As Integer) As Integer

'Verbindet den Funktionspointer mit der Funktion 'Addieren'
myFunction = @Addieren
Print myFunction(2, 3)

'Verbindet den Funktionspointer mit der Funktion 'Subtrahieren'
myFunction = ProcPtr(Subtrahieren)
Print myFunction(2, 3)

Sleep

Function Addieren(x As Integer, y As Integer) As Integer
    Return x + y
End Function

Function Subtrahieren(x As Integer, y As Integer) As Integer
    Return x - y
End Function

Unterschiede zu QB: neu in FreeBASIC

Unterschiede unter den FB-Dialektformen:
In der Dialektform -lang qb steht PROCPTR nicht zur Verfügung und kann nur über __PROCPTR aufgerufen werden.

Siehe auch:
@, SADD, Grundlagen zu Pointern, Zusammenstellung von Pointer-Anweisungen