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

cs_Jbs106 32 Messages postés mardi 9 septembre 2003Date d'inscription 27 avril 2010 Dernière intervention - 22 sept. 2009 à 10:35 - Dernière réponse : cs_Jbs106 32 Messages postés mardi 9 septembre 2003Date d'inscription 27 avril 2010 Dernière intervention
- 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ù?
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
cs_Jbs106 32 Messages postés mardi 9 septembre 2003Date d'inscription 27 avril 2010 Dernière intervention - 22 sept. 2009 à 15:44
3
Merci
__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?#

Merci cs_Jbs106 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 68 internautes ce mois-ci

Commenter la réponse de cs_Jbs106
cs_Jbs106 32 Messages postés mardi 9 septembre 2003Date d'inscription 27 avril 2010 Dernière intervention - 22 sept. 2009 à 12:56
0
Merci
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.
Commenter la réponse de cs_Jbs106
BruNews 21054 Messages postés jeudi 23 janvier 2003Date d'inscription 7 novembre 2014 Dernière intervention - 22 sept. 2009 à 19:33
0
Merci
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++
Commenter la réponse de BruNews
cs_Jbs106 32 Messages postés mardi 9 septembre 2003Date d'inscription 27 avril 2010 Dernière intervention - 24 sept. 2009 à 22:42
0
Merci
Merci
Commenter la réponse de cs_Jbs106

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.