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ù?