Casimir33
Messages postés1Date d'inscriptionvendredi 14 octobre 2005StatutMembreDernière intervention26 janvier 2006
-
26 janv. 2006 à 21:29
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019
-
26 janv. 2006 à 23:08
Bonjour,
je développe un projet sous VB 6, et j'aimerai faire une dll en C, et ensuite pouvoir appeler les fonctions de la dll dans mon projet VB.
J'arrive à faire la dll, mais je n'arrive pas à appeler une fonction de celle-ci.
cs_rt15
Messages postés3874Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention 7 novembre 201413 26 janv. 2006 à 21:42
Ta dll exporte certainemant une liste de fonctions.
Il faut que tu déclares ces fonctions sous VB6.
Tu trouveras plein d'exemples de déclaration dans la visionneuse d'api.
Des trucs du style:
Private Declare Function Allo Lib "ADVAPI32.DLL" Alias "AlloEX" (ByVal allo As Long) As Long
Il faut que tu fasses attention à la taille des types (En VB Long: 32bits, Boolean: 16bits...)
ByVal sinifie que tu fait passer les argument par valeur, et pas par adresse. En C, il me semble que les arguments sont toujours passsés par valeur.
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 26 janv. 2006 à 23:08
Tu trouveras des exemples dans mes sources VB.
Exporte tes fonctions en déco "C", ce que je fais par fichier *.def.
Les fonctions doivent être en __stdcall (standard API) sinon y aura erreur de pile chez VB car il ne relève pas le registre ESP.