DECLARE FUNCTION / DECLARE SUB

Icône du lien vers le conceptVoir également Icône du lien vers le conceptExemple

Déclaration d'une fonction externe ou d'une sous-routine. Cette instruction est utilisée chaque fois qu'un appel DLL doit être effectué.

Support WebVue - Oui.

Mode

Mnémonique

Syntaxe

- FUNCTION 1
- SUB 2

Les fonctions ou sous-routines doivent toujours être déclarées en en-tête du programme (en dehors des procédures).

Syntaxe 1

DECLARE FUNCTION GlobalName LIB Libname [ALIAS AliasName] ([Arguments]) AS Type;

Argument

Définition

GlobalName

Nom de la SUB ou FUNCTION. Si différent du vrai nom du SUB ou de la FUNCTION dans la DLL, alors l'alias doit également être spécifié.

LibName

Nom de la DLL où se trouve la procédure déclarée. Type STR.
Si exécutée dans le contexte d'une session WebVue, cette instruction est traitée par le back end web, la DLL doit être présente sur le back end web. La DLL doit être présente sur la machine qui héberge le back-end du web.

AliasName

Nom de la procédure dans la DLL s'il est différent de celui donné dans le programme. Type STR

Type

Type retourné par la fonction (INTEGER, LONG, SINGLE, DOUBLE, STR).

Arguments

Liste d'arguments avec la syntaxe suivante :

 

[BYVAL] Variable AS Type, [BYVAL] Variable AS Type, ...

Variable

Nom de la variable passée en argument.

Type

Le type de la variable passée en argument. INTEGER, LONG, SINGLE, DOUBLE.

Exécution

Le programme externe se comporte comme une fonction. La fonction retourne toujours une valeur.

Syntaxe 2

DECLARE SUB GlobalName LIB LibName [ALIAS AliasName] ([Arguments]);

Exécution

Le programme externe se comporte comme une sous-routine. Le sous-programme ne retourne pas de valeur.

Le sous-programme déclaré est visible pour tous les sous-programmes du programme courant. S'il est déclaré dans le programme GLOBAL, il est visible par tous les programmes.

Le dossier dans lequel se trouve la DLL doit avoir un chemin défini sur elle, sinon le chemin complet sera inclus dans la déclaration.

Exemple

DECLARE SUB DosBeep lib "DOSCALLS" (X as integer);

DECLARE FUNCTION WinExec LIB "KERNEL" (BYVAL File AS STR,BYVAL SH AS INTEGER) AS INTEGER;