kantelise
Messages postés2Date d'inscriptionmardi 20 décembre 2005StatutMembreDernière intervention27 avril 2006
-
27 avril 2006 à 20:07
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019
-
27 avril 2006 à 21:21
Bonsoir a tous,
J'ai crée une dll en c que je souhaite utiliser sous Vb. Voici la declaration de ma dll sous vb:
Private Type variete nom As String * 21 topt As Single tbase As Single tsum As Single cpp As Single bvp As Single toptm As Single cdrm As Single tcritc As Single tcrith As Single tcritd As Single End Type
Public Declare Function dllecrire Lib "win.dll" Alias"parametre" (var1 As variete, var2 As variete) As Integer
Pour l'appel voici ce que je fais:
retour = dllecrire(var1, var2)
Mais voici le message affiché:type d'arguments byref incompatibles
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 27 avril 2006 à 20:20
Salut
Il faut préciser dans la déclaration si les arguments doivent être passé ByRef (c'est par défaut, mais mieux vaut le préciser)
Pour un passage de variables complexe, il faut impérativement dimensionner les variables passées avant l'appel (je pense que tu l'as fait, mais pas précisé)
La définition de ton Type est Private et la déclaration de ta Function est Public : Essaye d'uniformiser.
Si ça n'a rien résolé, copie/colle nous les quelques lignes de ton code
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
Champion du monde de boule de cristal - 2005 Le savoir est la seule matière qui s'accroit quand on le partage (Socrate)
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 27 avril 2006 à 20:37
Jusqu'ici ton code semble tout à fait correct. Je ne vois à priori aucun soucis.
Le problème doit venir de la dll.
Comment est définie la fonction "parametre" dans ta dll ? peut-tu nous donné ce bout de code, stp?
Et donne aussi la définition de la structure dans ta dll. Pour moi le blême vient de la dll.
un problème de definition des parametre dans la fonction,
ou un probleme de définition de la structure,
ou peut-etre bien un problème de _stdcall, why not