salut67
Messages postés27Date d'inscriptionmercredi 19 janvier 2011StatutMembreDernière intervention 1 novembre 2018
-
20 sept. 2015 à 19:42
cs_louis14
Messages postés793Date d'inscriptionmardi 8 juillet 2003StatutMembreDernière intervention10 février 2021
-
19 oct. 2015 à 08:59
Bonjour,
j'ai un script VBA qui appelle une fonction de DLL. J'aimerais le convertir en un programme C (pour l'intégrer dans un autre programme C). Mais lors de l'exécution, plantage avec message Windows.
Script VBA fonctionnel :
option explicit declare function myfun lib "mylib" (byval p1$, p1len as integer, byval p2$, p2len as integer, byval p3$, p3len as integer) as integer type mytype p1 as string : p1len as integer p2 as string : p2len as integer p3 as string : p3len as integer end type sub main dim myvar as mytype dim p1len as integer, p2len as integer, p3len as integer dim p1$, p2$, p3$ let mytype.p1 = string$(255, " ") : let mytype.p1len = 255 let mytype.p2 = string$(255, " ") : let mytype.p2len = 255 let mytype.p3 = string$(255, " ") : let mytype.p3len = 255 ret = myfun(mytype.p1, mytype.p1len, mytype.p2, mytype.p2len, mytype.p3, mytype.p3len) end sub
J'ai essayé de changer la taille des variables p1len, p2len, p3len : unsigned char, unsigned short, unsigned long, unsigned long long, toujours ko.
Si les pro peuvent me mettre sur une piste, merci d'avance.
Jean-Claude
cs_louis14
Messages postés793Date d'inscriptionmardi 8 juillet 2003StatutMembreDernière intervention10 février 20218 19 oct. 2015 à 08:59
Bonjour,
Il faut être sûr des paramètres de la fonction : char, unsigned char, wchar ou autres.
Je te recommande de lire cet article en anglais : https://support.microsoft.com/en-us/kb/205277#bookmark-21. Tu peux aussi installé un outil comme "dependencies Walker" afin de voir les fonctions exportées de ta dll et peut-être le type.