DECLARE - DLL, commande
Enregistre une fonction dans une bibliothèque partagée externe. Les bibliothèques sont des fichiers .DLL (dynamic link library, bibliothèque de liaison dynamique) 32 bits.
Syntaxe
DECLARE [cTypeFonction] NomFonction IN NomBibliothèque [AS NomAlias]
[cTypeParam1 [@] NomParam1,
cTypeParam2 [@] NomParam2, ...]
Arguments
cTypeFonction
Indique le type de données de la valeur renvoyée (si elle existe) par la fonction de la bibliothèque partagée. Si la fonction ne renvoie pas de valeur, ne spécifiez pas cTypeFonction.
cTypeFonction peut prendre les valeurs suivantes :
CtypeFonction Description
SHORT Nombre entier 16 bits
INTEGER Nombre entier 32 bits
SINGLE Virgule flottante 32 bits
DOUBLE Virgule flottante 64 bits
LONG Nombre entier long 32 bits
STRING Chaîne de caractères
NomFonction
Spécifie le nom de la fonction de la bibliothèque partagée à enregistrer dans Visual FoxPro. Les noms de fonction distinguent les majuscules des minuscules.
Remarque Le nom de la fonction DLL peut être différent de celui indiqué dans le manuel Win32 API. Par exemple, la fonction MessageBox doit être nommée MessageBoxA (caractère 8 bits) et MessageBoxW (UNICODE). Si Visual FoxPro ne parvient pas à localiser la fonction spécifiée par NomFonction, la lettre A est ajoutée à la fin du nom et Visual FoxPro recherche une fonction portant ce nouveau nom.
Si la fonction que vous spécifiez porte le même nom qu'une fonction Visual FoxPro ou si elle a un nom non autorisé, utilisez la clause AS, décrite plus loin dans cette rubrique, pour assigner un alias à la fonction.
IN NomBibliothèque
Spécifie le nom de la bibliothèque externe contenant la fonction définie par NomFonction.
Si vous spécifiez WIN32API comme NomBibliothèque, Visual FoxPro recherche la fonction dans les modules Kernel32.dll, Gdi32.dll, User32.dll, Mpr.dll et Advapi32.dll.
AS NomAlias
Spécifie un alias pour une fonction portant le même nom qu'une fonction Visual FoxPro, ou dont le nom ne correspond pas à un nom autorisé Visual FoxPro. NomAlias ne doit pas être un mot réservé Visual FoxPro ou le nom d'une fonction de bibliothèque partagée déjà enregistrée.
Si vous avez spécifié un alias pour une fonction, utilisez-le lorsque vous appelez la fonction de la bibliothèque partagée. NomAlias ne distingue pas les majuscules des minuscules.
cTypeParamètre1 [@] NomParam1, cTypeParamètre2 [@] NomParam2, ...
Spécifie le type des paramètres passés à la fonction de la bibliothèque partagée.
cTypeParamètre est obligatoire et spécifie le type de données des paramètres attendus par la fonction. cTypeParamètre peut prendre les valeurs suivantes :
cTypeParamètre Description
INTEGER Nombre entier 32 bits
SINGLE Virgule flottante 32 bits
DOUBLE Virgule flottante 64 bits
LONG Nombre entier long 32 bits
STRING Chaîne de caractères
Visual FoxPro génère une erreur si les paramètres ne sont pas du type requis par la fonction de la bibliothèque partagée. Une valeur nulle peut être passée en tant que chaîne de caractères vide.
Pour passer un paramètre par référence lors de l'appel d'une fonction, vous devez insérer le symbole @ après le paramètre cTypeParamètre de cette commande et avant la variable correspondante de la fonction appelante. Le paramètre est passé par valeur si vous n'incluez pas le symbole @ dans DECLARE, dans la fonction appelante ou dans les deux. Pour plus d'informations sur les fonctions de bibliothèques partagées qui ont besoin de @ pour passer des paramètres par référence, consultez le Guide du programmeur de votre système d'exploitation ou de votre environnement (par exemple, consultez le Guide du programmeur Win32 de Microsoft pour le passage des paramètres aux fonctions de bibliothèques Windows).
Remarque Les noms des paramètres NomParam1, NomParam2... sont facultatifs et ne sont pas utilisés par Visual FoxPro ni par les fonctions des bibliothèques partagées. Vous pouvez les inclure afin de rappeler le nom et le type des paramètres passés à la fonction.
Notes
Avant de pouvoir appeler une fonction de bibliothèque partagée, vous devez exécuter DECLARE avec le nom de la fonction, le nom de la bibliothèque contenant la fonction et le type de paramètre attendus par la fonction.
Afin de garantir la compatibilité ascendante, Visual FoxPro autorise l'utilisation de la commande SET LIBRARY pour les appels aux bibliothèques API externes. (SET LIBRARY permet d'accéder aux fonctions de Foxtools.fll) Cependant, il est recommandé d'utiliser la commande DECLARE pour enregistrer des fonctions de bibliothèques partagées.
Pour plus d'informations sur l'appel des fonctions des bibliothèques partagées, consultez le guide du programmeur de votre système d'exploitation ou de votre environnement (par exemple, consultez le Guide du programmeur Win32 de Microsoft pour plus d'informations sur l'appel des fonctions des DLL).
Utilisez les commandes DISPLAY STATUS ou LIST STATUS pour afficher le nom des fonctions enregistrées. Exécutez CLEAR ALL ou CLEAR DLLS pour supprimer de la mémoire les fonctions enregistrées.