CallCFunctionFast()

Syntaxe

Resultat = CallCFunctionFast(*PointeurFonction [,Parametre1 [, Parametre2...]])
Description
Appelle une fonction directement, en utilisant son adresse.
La fonction doit utiliser l'appel cdecl (la convention utilisée par le langage C).

Arguments

*PointeurFonction L'adresse de la fonction à appeler.

Son pointeur est obtenu par GetFunction() , GetFunctionEntry() ou par LibraryFunctionAddress().
L'utilisation de cette fonction est la méthode la plus rapide pour appeler des fonctions d'une bibliothèque, en particulier lorsque les résultats ont été obtenus avec GetFunction() ou LibraryFunctionAddress(). Cela est dû au fait que cette fonction n'est pas tenue de rechercher le nom de la fonction de bibliothèque.
Parametre1, Parametre2... (optionnel) Les paramètres de la fonction.

Le nombre maximum de paramètres est 20.
Le nombre de paramètres autorisés est quelconque mais doit correspondre exactement aux besoins de la fonction. Par exemple, si une fonction nécessite 2 paramètres, alors 2 paramètres doivent être passés même si les valeurs de ces 2 paramètres sont nulles.

Valeur de retour

Renvoie la valeur de retour de la fonction appelée.

Remarques

Attention, cette fonction n'est utile que si la commande appelée a été déclarée avec la convention 'CDECL' ce qui n'est pas le standard sous Windows. La plupart des DLL sous Windows nécessite l'utilisation de CallFunction(). Par contre sous linux, toutes les fonctions des bibliothèques partagées sont en 'CDECL'.

Pour appeler une fonction qui utilise la convention d'appel stdcall, utilisez la fonction CallFunction().

Note: Cette fonction n'est pas très flexible car elle n'accepte pas les paramètres de type string, float, double et quad, et ne peut pas renvoyer des valeurs de type string, float, double ou quad. Il est vivement conseillé d'utiliser les prototypes.

Exemple

  ProcedureC Function1()
      Debug "J'appelle la Fonction par son nom"
  EndProcedure

  NewMap *FuncPtr()
  *FuncPtr("Function1") = @Function1()


  CallCFunctionFast(*FuncPtr("Function1"))

Voir aussi

GetFunction(), CallFunctionFast(), prototypes

OS Supportés

Tous

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