Problème de DLL, Aidez moi svp
jbs106
Messages postés
25
Statut
Membre
-
le père -
le père -
Bonjour,
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. ça viendrai d'où? Elles ne sont pas compliquées ces fonctions...
J'utilise dépendency walker pour bien voir mes fonctions. Elles y sont toutes mais impossible d'en appeler une avec un paramètre... Là, je suis vraiment bloqué, je comprends pas. s'il vous plais, aidez moi.
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. ça viendrai d'où? Elles ne sont pas compliquées ces fonctions...
J'utilise dépendency walker pour bien voir mes fonctions. Elles y sont toutes mais impossible d'en appeler une avec un paramètre... Là, je suis vraiment bloqué, je comprends pas. s'il vous plais, aidez moi.
A voir également:
- Problème de DLL, Aidez moi svp
- Logilda dll ✓ - Forum Windows 8 / 8.1
- Advapi32.dll ccleaner ✓ - Forum Windows
- Cccleaner procédure introuvable dans biblio liens dynamiques - Forum Windows 7
- %Systemroot%\system32\shell32.dll - Forum Windows
- Setdefaultdlldirectories kernel32.dll windows 7 ✓ - Forum Windows 7