OVH Cloud OVH Cloud

Toujours le type char** dans les DLL

1 réponse
Avatar
jean saint jalmes
Bonjour,

Le prototype d'une DLL en C est le suivant :

void API_free(char ** Description);

Je l'ai traduite en VB comme suit :

Private declare sub API_free Lib "API" (Description as long);

Lorsque je l'appelle avec :

Private sub Test

Dim Ptr as long

API_free Ptr
End sub

J'obtient l'erreur n° 49 : Convention d'appel de DLL incorrecte.

Pouvez-vous m'aider ?

Merci d'avance, Jean

1 réponse

Avatar
Jean-Marc
"jean saint jalmes" a écrit dans
le message de news:
Bonjour,

Le prototype d'une DLL en C est le suivant :

void API_free(char ** Description);

Je l'ai traduite en VB comme suit :

Private declare sub API_free Lib "API" (Description as long);

Lorsque je l'appelle avec :

Private sub Test

Dim Ptr as long

API_free Ptr
End sub

J'obtient l'erreur n° 49 : Convention d'appel de DLL incorrecte.

Pouvez-vous m'aider ?




Hello,

voici la solution:
http://rp.developpez.com/vb/tutoriels/dll/#L11

Il te faudra écrire une petite fonction wrapper en C pour encapsuler
ta fonction avec une autre utilisant un SAFEARRAY.

L'exemple donné est exactement ce que tu veux, il suffit de changer les
noms. Cela suppose bien sur que tu disposes d'un compilateur C sous
Windows.

Cordialement

--
Jean-marc
Tester mon serveur (VB6) => http://myjmnhome.dyndns.org
"There are only 10 kind of people
those who understand binary and those who don't."
mailto: remove '_no_spam_' ;