CallCFunctionFast()

Syntax

Ergebnis = CallCFunctionFast(*FunktionsZeiger [,Parameter1 [, Parameter2...]])
Beschreibung
Ruft eine Funktion direkt auf, durch Verwendung ihrer Adresse. Von der Funktion wird erwartet, dass sie die cdecl Aufruf-Konvention (die von der Sprache C verwendete Konvention) verwendet.

Parameter

*FunktionsZeiger Die Adresse der aufzurufenden Funktion.

Dieser Zeiger (Pointer) kann durch Verwendung der GetFunction(), GetFunctionEntry() oder LibraryFunctionAddress() Befehle ermittelt werden. Die Verwendung dieser Funktion ist der schnellste Weg, um Library-Funktionen aufzurufen, insbesondere wenn die Ergebnisse der GetFunction() bzw. LibraryFunctionAddress() Aufrufe gespeichert wurden. Dies kommt daher, dass dieser Befehl nicht nach dem Namen der Library-Funktion suchen muss.
Parameter1, Parameter2, ... Die Parameter für die aufzurufende Funktion. Die Anzahl der Parameter muss zu den Parametern der aufgerufenen Funktion passen. Die maximale Zahl an unterstützten Parametern liegt bei 20.

Rückgabewert

Gibt den Rückgabewert der aufgerufenen Funktion zurück.

Anmerkungen

Wird die Funktion als 'cdecl' beschrieben, dann muss dieser Befehl verwendet werden. Die meisten der unter dem Microsoft Windows OS benutzten DLL's verwenden jedoch nicht diese Form, weshalb CallFunctionFast() für die meisten Fälle ausreichend sein sollte.
Um eine Funktion aufzurufen, welche die 'stdcall' Aufruf-Konvention verwendet, muss die CallFunctionFast() Funktion verwendet werden.

Hinweis: Diese Funktion ist nicht sehr flexibel und kann nicht mit String/Fließkomma/Double/Quad-Parametern oder String/Fließkomma/Double/Quad-Rückgabewerten umgehen. Die Verwendung von Prototypen ist stattdessen sehr zu empfehlen.

Beispiel

  ProcedureC Function1()
    Debug "Function1 anhand ihres Namens aufrufen"
  EndProcedure
  
  NewMap *FuncPtr()
  *FuncPtr("Function1") = @Function1()

  CallCFunctionFast(*FuncPtr("Function1"))

Siehe auch

GetFunction(), CallFunctionFast(), prototypes

Unterstützte OS

Alle

<- CallCFunction() - Library Inhaltsverzeichnis - CallFunction() ->