PROCPTR

FreeBASIC-Referenz » Alphabetische Befehlsreferenz » P » PROCPTR

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

PROCPTR gibt die Adresse einer Prozedur oder Funktion 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

SUB dummy
' ...
END SUB

Beispiel 2:

Declare Function Subtract( x As Integer, y As Integer) As Integer
Declare Function Add( 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 'Add'
myFunction = ProcPtr( Add )
Print myFunction(2, 3)

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

Sleep

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

Function Subtract( 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