Bonjour,
Quelques avis sur tes questions - quoique je n'utilise pas les appels de DLL -


Le 2005-02-18 11:37, [EMAIL PROTECTED] a �crit :
Bonjour,

J'utilise l'instruction Declare pour appeler les fonctions d'une DLL, et j'ai 2 questions sur ce sujet :
- il semble qu'on ne puisse pas remplacer le nom de la DLL "nom.dll" par une constante pr�d�finie de type string (ce n'est pas possible non plus en Visual Basic). Y a-t-il une impossiblit� r�elle ? En effet, ce serait bien pratique pour d�finir 30 fonctions de la DLL, avec toujours le m�me nom et le m�me chemin, absolu donc � rallonge, et susceptible de changer ! Et en fin de compte, c'est illisible.
Effectivement, je vois qu'utiliser une constante d�clenche une erreur de syntaxe. Mais tu peux d�couper la d�claration en plusieurs lignes:
Declare Function Fonction_En_C _
Lib "Ma_bibli.dll" _
(ByVal param1 As Integer, param2 As Integer) As Integer
La deuxi�me ligne sera ainsi toujours la m�me, si �a peut te consoler.


- comment d�clarer le type pointeur (d'une fonction d'une DLL) et comment l'utiliser ? N'h�sitez pas � me corriger si je me trompe.
Cas avec un pointeur dans les param�tres :
int Fonction_En_C(int param1, int* param2);
=> Declare Function Fonction_En_C Lib "Ma_bibli.dll" (ByVal param1 As Integer, param2 As Integer) As Integer
Cela correspond aux explications de l'aide en ligne. Mais il faut �tre s�r que Integer est �quivalent � int du C. Basic Integer est une valeur sur 16 bits.
Cas moins simple avec un pointeur dans la fonction :
        char* Fonction_En_C(int param1, int* param2);
        => ???
Alors l�, �a se corse, Basic ne permet pas de voir l'aspect pointeur.
Je sugg�re d'utiliser : As Variant
Et je m'attendrais � obtenir dans le Variant un tableau. Mais Basic n'a pas de type caract�re. Alors Basic pourrait convertir le retour de la fonction en un tableau de Integer. � moins qu'il ne renvoie un String...
Tu peux essayer de stocker le r�sultat de la fonction dans une variable Variant et en visualiser le contenu avec Xray.

P.S. Pour ceux int�ress�s par le contr�le d'�quipement par GPIB, j'ai d�j� r�ussi � utiliser la DLL "Gpib32.dll" pour commander mes appareils. Ca s'annonce bien !


Bravo! quand tu auras r�solu tes probl�mes, penses � faire un petit HowTo des astuces � conna�tre.

Bon courage,
   Bernard


--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]



Répondre à