Probleme de convention? d'appel de dll dans vba

Résolu
cs_Jbs106 Messages postés 32 Date d'inscription mardi 9 septembre 2003 Statut Membre Dernière intervention 27 avril 2010 - 22 sept. 2009 à 10:35
cs_Jbs106 Messages postés 32 Date d'inscription mardi 9 septembre 2003 Statut Membre Dernière intervention 27 avril 2010 - 24 sept. 2009 à 22:42
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

cs_Jbs106 Messages postés 32 Date d'inscription mardi 9 septembre 2003 Statut Membre Dernière intervention 27 avril 2010
22 sept. 2009 à 15:44
__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?#
3
cs_Jbs106 Messages postés 32 Date d'inscription mardi 9 septembre 2003 Statut Membre Dernière intervention 27 avril 2010
22 sept. 2009 à 12:56
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.
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
22 sept. 2009 à 19:33
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++
0
cs_Jbs106 Messages postés 32 Date d'inscription mardi 9 septembre 2003 Statut Membre Dernière intervention 27 avril 2010
24 sept. 2009 à 22:42
Merci
0
Rejoignez-nous