Dll en C

Casimir33 Messages postés 1 Date d'inscription vendredi 14 octobre 2005 Statut Membre Dernière intervention 26 janvier 2006 - 26 janv. 2006 à 21:29
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 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.

Un peu d'aide me ferait bien.
Merci

2 réponses

cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
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.
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 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.

ciao...
http://dev.winsysdev.com
BruNews, MVP VC++
0
Rejoignez-nous