Sniper_Vgaerr
Messages postés113Date d'inscriptionjeudi 2 décembre 2004StatutMembreDernière intervention14 août 2006
-
25 avril 2005 à 19:07
Sniper_Vgaerr
Messages postés113Date d'inscriptionjeudi 2 décembre 2004StatutMembreDernière intervention14 août 2006
-
26 avril 2005 à 18:33
Je fais un programme de cryptage avec clé privée et publique et je prefere l'interface de VB que celle du C, mais comme le C va plus vite je prefere creer des DLL.
J'ai créer une DLL en C++ du genre :
int __stdcall Myfunc (int a, intb)
{
int x;
x=a+b;
return x;
}
J'ai fait aussi le fichier .def.
J'aimerai que cette fonction me retourne un paramètre que je puisse ensuite utiliser sous VB mais avec return x ca marche pas et sous VB j'ai mis:
private declare function Myfunc lib "madll" (byval a as integer, byval b as integer) //j'ai une erreur si je met as integer à la fin de cette phrase
private sub command1_click()
call Myfunc(3,3) //Ici si je met ret = Myfunc (3,3) ca ne marche pas non plus
end sub
Si quelqu'un pouvait me renseigner ca serait vraiment cool car la je galère.
Volez, planez et vous comprendrez pourquoi les oiseaux chantent.
Vive les NOSA !!! !!! !!!
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 26 avril 2005 à 12:25
Si ton .def est bien pris en compte par le compilo (verif dans proprietes du proj) alors pas besoin de ' extern "C" ' devant la fonction car le def est là pour éviter la décoration des noms de fonction que génère un compilo C++. Une bonne habitude est de toujours compiler une dll en mode C ainsi tout le monde peut s'en servir.
Tu prends des params 'int' dans le code C donc 32 bits, faut être cohérent dans le vb, mets tes params 'As Long' (32 bits) en vb et tout devrait aller mieux.