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