Lire les offsets , leurs types , leur valeurs d'une DLL via Foxpro V5

sikorssky77 Messages postés 1 Date d'inscription lundi 24 mai 2010 Statut Membre Dernière intervention 24 mai 2010 - 24 mai 2010 à 13:29
michelatoutfox Messages postés 828 Date d'inscription mardi 5 octobre 2004 Statut Membre Dernière intervention 7 mai 2013 - 24 mai 2010 à 15:43
bonjour

fan de simulation , je souhaite developper sous foxpro un Add-on externe a FSX , mais s'appuyant de façon interactive avec FSX pendant un vol

il existe, sous FSX, une DLL géniale et incontournable connue de tous les simmers developpé par une pointure du monde FS et mise a la disposition des simmers et developpeurs d'add-ons appelée FSUIPC.DLL
cette DLL recolte toutes les variables de fonctionnement , de valeurs et d'évenements de FSX
d'ou mes questions
peut-on avec VFP ?
ouvrir cette DLL
lire les offsets avec leur valeur et leur type (numerique , texte , logique , date, evenements , etc...)
SI cela n'etait pas possible avec VFP , peut etre VB (il faudra que je m'y mette)

Merci
Thierry

PS : j'ai cherché dans le site ce genre de code mais ne l'ai pas trouvé ou alors ma vue baisse (je sais , c'est l'age)

1 réponse

michelatoutfox Messages postés 828 Date d'inscription mardi 5 octobre 2004 Statut Membre Dernière intervention 7 mai 2013 1
24 mai 2010 à 15:43
VFP 5 ? je ne me souviens plus si DECLARE existait déjà.
voici ce que l'aide de VFP6 indique pour cette commande:
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.

0
Rejoignez-nous