Syntaxe
CALL process
|
CALL process WITH parameterlist
|
Paramètres
Nom |
Description |
process |
Ce paramètre permet d'indiquer le processus à appeler |
parameterlist |
Ce paramètre permet d'indiquer la liste de paramètres. |
Description
Cette commande permet d'appeler une routines compilés séparément.
Remarques
- La commande CALL donne accès à des routines compilées et/ou assemblées séparément. Ces routines doivent être liées en même temps que les autres fichiers objets produits
par le compilateur Clipper. Tous les programmes appelés doivent se conformer aux règles suivantes :
ils doivent suivre les conventions d'appel du langage C et du passage des paramètres,
le fichier doit être au format de fichier d'objet relogeable Intel 8086 avec l'extension de fichier .OBJ,
il doit être disponible pour l'éditeur de liens,
la bibliothèque du compilateur du programme appelant doit être disponible pour l'éditeur de liens Clipper (n'oubliez pas qu'un support d'exécution supplémentaire sera nécessaire pour toute autre langage que la langage assembleur),
il support jusqu'à 7 paramètres transmissible à la routine CALL,
la clause FAR est nécessaire pour les programmes CALL,
toutes les références de données sont constituées d'indicateurs à 4 octets dans le format SEGMENT:OFFSET (ils sont en haut de la pile dans l'ordre passé. Tous les types de données sont passés par référence),
les programmes appelés doivent conserver les registres BP, SS et DS,
les chaînes de caractères sont passées par référence et sont terminées par 0,
les longueurs des éléments de données doivent être préservées,
les variables numériques sont transmises sous forme de représentation de nombre réel (à virgule flottante) de 8 octets (ils conservent une caractéristique de 53 bits et un exposant de 11 bits avec une polarisation de 1023).
- A partir de l'automne 1986, la clause «WITH WORD(expN)]» a été ajouté. Cette clause convertira les paramètres numériques de type de données double en type de données
int, réduisant ainsi le temps système de la routine CALL. Si la valeur de l'expression numérique exprimée dans la fonction WORD ne dépasse pas plus ou moins 32 Ko, il n'est pas
nécessaire de passer un paramètre plus grand.
- A partir de l'été 1987, le compilateur Microsoft C 5.0 place les traits de soulignement principaux sur les noms de fonction. Pour accéder à ces fonctions, utilisez la
syntaxe :
Comme avec la version de l'automne 1986, pour convertir les paramètres numériques de type de données double en type de données int,
utilisez la clause «[WITH WORD (expN)]». Ainsi, la commande CALL permet à une liste de paramètres de comporter jusqu'à 7 paramètres. Comme avec dBASE III Plus, les
registres DX:BX et ES:BX pointent sur le premier paramètre de la liste. Les commandes requises avec le module LOAD sont donc :
PUBLIC proc
MOV DS, DX
Les types de données de caractères sont transmis par référence. La longueur de la chaîne de caractères de données doit être préservée. Étant donné que les
éléments de données résident consécutivement en mémoire, si les types de données ne sont pas conservés et s'ils sont allongés, d'autres données peuvent être écrasées.
Les types de données numériques sont transmis sous forme de nombre réel (virgule flottante) de 8 octets. Il se compose d'un caractère de 53 bits et d'un exposant de 11 bits polarisé par
1023. Si la valeur est supérieure à ±<F128M><145> 32 767, il ne peut pas être transmis à l'aide de la clause WORD.
Dernière mise à jour : Lundi, le 2 septembre 2013