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

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

Votre réponse

2 réponses

Meilleure réponse
cs_ghuysmans99
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Dernière intervention
30 juin 2013
- 28 déc. 2010 à 23:37
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

Merci cs_ghuysmans99 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 86 internautes ce mois-ci

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

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.