C++ et VB6 ne font pas bon ménage!
Bonjour,
Voila j'ai besoin de créer une DLL en C++ qui sera utilisé par un programme en VB6, j'ai beau testé tout les tutoriels qui se trouve sur le net, je n'y arrive pas.
Sous VS2008 je créé un projet Win32 vide, qui contient 1 seul .cpp:
Code:
1 2 3 4 5 6 7 8
|
extern "C"
{
__declspec(dllexport) int DisplayHelloFromDLL(int a,int b)
{
return a+b;
}
} |
Et voici le programme VB6:
Déclaration
Code:
Public Declare Function DisplayHelloFromDLL Lib "ma_dll.dll" (ByVal a As Long, ByVal b As Long) As Long
Et l'appel de la fonction:
Code:
1 2 3 4 5 6 7 8 9 10
|
Private Sub Command1_Click()
Dim a As Long
Dim b As Long
a = 1
b = 2
MsgBox API.DisplayHelloFromDLL(a, b)
End Sub |
Et là je tombe sur une erreur:
Erreur d'exécution 49: Convention d'appel de DLL incorrecte.
Quel est le problème? Apparemment cette erreur est générer si lors de la déclaration je lui passe un mauvais type d'argument, mais ici se n'est pas le cas!
J'ai oublié quelque chose dans ma DLL C++?
J'ai tout essayer avec des fichiers .def, etc... mais rien ça ne veux pas!
Merci