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

cs_ano2 5 Messages postés jeudi 25 mars 2010Date d'inscription 29 décembre 2010 Dernière intervention - 28 déc. 2010 à 15:15 - Dernière réponse : cs_ano2 5 Messages postés jeudi 25 mars 2010Date d'inscription 29 décembre 2010 Dernière intervention
- 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 

Votre réponse

2 réponses

cs_ghuysmans99 3983 Messages postés jeudi 14 juillet 2005Date d'inscription 30 juin 2013 Dernière intervention - 28 déc. 2010 à 23:37
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_ghuysmans99
cs_ano2 5 Messages postés jeudi 25 mars 2010Date d'inscription 29 décembre 2010 Dernière intervention - 29 déc. 2010 à 00:04
0
Utile
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

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.