Utilisation d'une DLL dans VBA
Bonjour a tous,
J'ai essayé d'utiliser avec ACCESS 2003 et VBA une DLL écrite en C fournie par un constructeur de matériel, servant à configurer ses équipements.
Je l'ai déclaré ainsi dans un module :
Code:
Public Declare Function mafonction Lib "madll" (ByVal PortCom As Byte, ByVal Mode As Byte, ByVal Config As Byte, ByVal Debug2 As Byte, ByRef Context As Byte) As Byte
Et je l'appelle de cette facon via un formulaire et un bouton pour tester dans un premier temps :
Code:
1 2 3 4 5 6 7 8 9
| Dim test, val1, val2, val3, val4, toto As Byte
val1 = 41
val2 = 9
val3 = 1
val4 = 1
toto=1
test = mafonction (val1, val2, val3, val4, toto) |
J'ai un message d'erreur à l’exécution :
Erreur d’exécution '49'
Convention d'appel de DLL incorrecte.
La doc de cette DLL me donne les infos suivantes sur cette fonction que j'essaye d'utiliser :
Code:
1 2 3 4 5 6 7 8 9 10 11
| Paramètres en entrée
unsigned char mafonction (unsigned char PortCom,
unsigned char Mode,
unsigned char Config,
unsigned char Debug,
unsigned char *Context ) ;
Paramètres en sortie
Context |
J'ai parcouru des dizaines de sites sur Internet pour comprendre ce qu'il se passe, et je suppose que cela est lié à la façon dont sont déclarées les variables étant donné que l'une d'elle dans la DLL est un pointeur C (d'ou le ByRef Context As Byte dans la déclaration de la fonction).
Mais rien n'y fait j'ai systématiquement cette erreur.
Je ne débute pas en VBA, mais ne n'ai jamais vraiment utilisé de DLL de ce type la avec des primitives complexes associées.
Si quelqu'un peut m'aider...
Merci.