Probleme de convention? d'appel de dll dans vba [Résolu]

Signaler
Messages postés
32
Date d'inscription
mardi 9 septembre 2003
Statut
Membre
Dernière intervention
27 avril 2010
-
Messages postés
32
Date d'inscription
mardi 9 septembre 2003
Statut
Membre
Dernière intervention
27 avril 2010
-
J'ai ouvert un projet en vc++ studio express 2008. projet win32, dll, nommée tutorial, et dans le fichier tutorial.cpp, j'ai ajouté trois fonctions:

extern "C" __declspec(dllexport) int factorielle(int n)
{
int resultat = 1;
if(n < 0)
return -1;
if(n == 0)
return 1;
for(; n > 0; n--)
resultat *= n;
return resultat;
}

extern "C" __declspec(dllexport) int trois()
{
return 3;
}
extern "C" __declspec(dllexport) int deuxfois(int n)
{ return 2*n;
}
****************************************************
voici mon appel en vba:

Declare Function factorielle Lib "D:\Dev\tutorial.dll" (ByVal n As Long) As Long
Declare Function trois Lib "D:\Dev\tutorial.dll" () As Long
Declare Function deuxfois Lib "D:\Dev\tutorial.dll" (ByVal n As Long) As Long
Sub tste()
Dim tst
tst = 6
tst = trois
tst = factorielle(6)
End Sub

Pourquoi la fonction trois() fonctionne et la fonction factorielle ne fonctionne pas? J'ai même essayé avec une fonction me doublant une valeur entrée en paramètre, toujours la même erreur; convention d'appel de DLL incorrecte erreur 49. S'il vous plais, aidez moi, je ne comprend pas. ça viendrai d'où?

4 réponses

Messages postés
32
Date d'inscription
mardi 9 septembre 2003
Statut
Membre
Dernière intervention
27 avril 2010

__declspec(dllexport) int __stdcall factorielle(int n) voila ce qui faut exactement...
voir
http://www.commentcamarche.net/forum/affich-14478286-probleme-de-dll-aidez-moi-svp?#
Messages postés
32
Date d'inscription
mardi 9 septembre 2003
Statut
Membre
Dernière intervention
27 avril 2010

J'utilise dépendency walker pour bien voir mes fonctions. Elles y sont mais impossible de l'appeler. Là, je suis vraiment bloqué, je comprends pas. s'il vous plais, aidez moi.
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
20
Il y avait des exemples ici sur cppfrance:

DLL C ET ASM POUR VB
http://www.cppfrance.com/code.aspx?id=20672
TRAITER STRING VB PAR DLL C/C++ (WIN32)
http://www.cppfrance.com/code.aspx?ID=30115

ciao...
BruNews, MVP VC++
Messages postés
32
Date d'inscription
mardi 9 septembre 2003
Statut
Membre
Dernière intervention
27 avril 2010

Merci