Problème de point d'entrée dans une dll [Résolu]

Messages postés
5
Date d'inscription
jeudi 25 mars 2010
Statut
Membre
Dernière intervention
29 décembre 2010
- - Dernière réponse : cs_ano2
Messages postés
5
Date d'inscription
jeudi 25 mars 2010
Statut
Membre
Dernière intervention
29 décembre 2010
- 29 déc. 2010 à 00:04
Bonjour à tous,

je suis en train de créer une dll en c++ pour ensuite l'utiliser en vba sous excel, mais je rencontre un problème lors de l'utilisation d'une fonction de ma librairie :

Point d'entrée getDouble d'une dll introuvable.

voici le code c++ :

// dllmain.cpp : Définit le point d'entrée pour l'application DLL.
#include "stdafx.h"
#include <math.h>
#include <stdlib.h>

BOOL APIENTRY DllMain( HMODULE hModule,
DWORD  ul_reason_for_call,
LPVOID lpReserved
)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}

extern "C" __declspec(dllexport)  double __stdcall getDouble(double min,double max)//Renvoie un double entre min et max
{
return  (min + (((float) rand() / RAND_MAX) * (max - min)));
}

extern "C" __declspec(dllexport) int getQuatre()
{
return  4;
}


et le code vb pour l'utiliser :
Declare Function getDouble Lib "C:\Documents and Settings\Administrateur\Mes documents\Visual Studio 2010\Projects\TestSubversion(2)\TestSubversion\Debug\testSubversion.dll" (ByVal x As Double, ByVal y As Double) As Double

Declare Function getQuatre Lib "C:\Documents and Settings\Administrateur\Mes documents\Visual Studio 2010\Projects\TestSubversion(2)\TestSubversion\Debug\testSubversion.dll" () As Long

Public Sub getDoubleVBA()
    Cells(1, 3) = getDouble(2.1, 4.1)
End Sub

Public Sub getQuatreVBA()
    Cells(1, 2) = getQuatre()
End Sub


La fonction getQuatre fonctionne très bien pourtant, donc je ne comprends pas d'où vient l'erreur.

Merci pour votre aide
Afficher la suite 

2 réponses

Meilleure réponse
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
30 juin 2013
11
3
Merci
Ajoute à ton projet un fichier DEF avec ceci dedans :
LIBRARY	"testSubversion"
EXPORTS
getDouble
getQuatre
Gaffe quand même : tu n'appelles jamais srand()

VB.NET is good ... VB6 is better
Utilise Réponse acceptée quand un post répond à ta question

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 196 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_ghuysmans99
Messages postés
5
Date d'inscription
jeudi 25 mars 2010
Statut
Membre
Dernière intervention
29 décembre 2010
0
Merci
Merci beaucoup pour l'aide, ça marche beaucoup mieux maintenant !

Ah oui effectivement, je ne connaissais pas srand(), qui à l'air plutôt important. Ça me fait en peu de lecture en plus en tout cas !
Commenter la réponse de cs_ano2