Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

DLL C++ sous VB

2 réponses
Avatar
jean saint jalmes
Bonjour à tous.

J'ai développé une DLL C++ qui doit être utilisée par une application Visual
Basic 6.0
Il s'agit d'une DLL simple sans ATL ni MFC. Sa génération ne pose aucun
problème et elle est copiée dans le même répertoire que l'application VB

Voici la déclaration de la DLL et l'appel de sa fonction sous VB:

Declare Function EVS lib "EVSignature.dll" () as long

private sub Test_DLL()
dim Result as long
Result = EVS
end sub

Lorsque je lance l'application VB, je me heurte aux problèmes suivants:

- Erreur 48 fichier EVSignature.dll introuvable lorsque la DLL a été générée
à partir de Visual Studio 2008.
- Erreur 453 Point d'entré EVS d'une DLL introuvable dans EVSignature.dll
lorsqu'elle a été générée à partir de Visual Studio 6.

Voici les sources de la DLL:

Fichier EVSignature.h

#define DLL_EXPORT __declspec(dllexport) __stdcall
DWORD DLL_EXPORT EVS(void);

Fichier EVSignature.cpp

// EVSignature.cpp : Defines the entry point for the DLL application.
//

#include "stdafx.h"
#include "EVSignature.h"


BOOL APIENTRY DllMain( HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
return TRUE;
}


DWORD DLL_EXPORT EVS(void)
{
return 1;
}

Inutile de préciser que je suis novice en C++

Merci par avance; Jean

2 réponses

Avatar
jean saint jalmes
Bon j'ai trouvé une solution qui fonctionne bien avec Visual Studio 2008.
Il faut ajouter un fichier DLL.def au projet C++ du type suivant:

LIBRARY "DpConnexion"
EXPORTS
MyFirstFunction @1
MySecondFunction @2
Etc.......

"jean saint jalmes" a écrit :

Bonjour à tous.

J'ai développé une DLL C++ qui doit être utilisée par une application Visual
Basic 6.0
Il s'agit d'une DLL simple sans ATL ni MFC. Sa génération ne pose aucun
problème et elle est copiée dans le même répertoire que l'application VB

Voici la déclaration de la DLL et l'appel de sa fonction sous VB:

Declare Function EVS lib "EVSignature.dll" () as long

private sub Test_DLL()
dim Result as long
Result = EVS
end sub

Lorsque je lance l'application VB, je me heurte aux problèmes suivants:

- Erreur 48 fichier EVSignature.dll introuvable lorsque la DLL a été générée
à partir de Visual Studio 2008.
- Erreur 453 Point d'entré EVS d'une DLL introuvable dans EVSignature.dll
lorsqu'elle a été générée à partir de Visual Studio 6.

Voici les sources de la DLL:

Fichier EVSignature.h

#define DLL_EXPORT __declspec(dllexport) __stdcall
DWORD DLL_EXPORT EVS(void);

Fichier EVSignature.cpp

// EVSignature.cpp : Defines the entry point for the DLL application.
//

#include "stdafx.h"
#include "EVSignature.h"


BOOL APIENTRY DllMain( HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
return TRUE;
}


DWORD DLL_EXPORT EVS(void)
{
return 1;
}

Inutile de préciser que je suis novice en C++

Merci par avance; Jean



Avatar
Jean-marc
jean saint jalmes wrote:
Bonjour à tous.

J'ai développé une DLL C++ qui doit être utilisée par une application
Visual Basic 6.0
Il s'agit d'une DLL simple sans ATL ni MFC. Sa génération ne pose
aucun problème et elle est copiée dans le même répertoire que
l'application VB



Hello,

Tu peux consulter cet article de la FAQ, tr§s complet avec exemples:
http://faq.vb.free.fr/index.php?question4

La section "aller plus loin" te donne aussi des tas d'informations utiles !

Cordialement,

--
Jean-marc Noury (jean_marc_n2)
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;