DLL, VC++ & VB2008

[Résolu]
Signaler
Messages postés
9
Date d'inscription
jeudi 27 février 2003
Statut
Membre
Dernière intervention
26 mai 2009
-
Messages postés
9
Date d'inscription
jeudi 27 février 2003
Statut
Membre
Dernière intervention
26 mai 2009
-
Bonjour à tous,

Je reposte ce sujet qui aura peut-être plus de succès dans cette rubrique que dans la rubrique "Débutants".

Je tente de faire un outil de monitoring en VB2008, au moyen d'une DLL écrite en C++.


Problème : je ne connais ni VC++, ni VB2008, ni la programmation de DLL !


Cependant je connais VB5 (!) et je suis reparti d'une solution 100% C++ que j'ai réussi à compiler et à faire fonctionner, puis que j'ai adapter à ma sauce.
Je ne suis certainement pas au bout de mes ennuis, mais mon problème actuel se situe au moment de l'appel à l'une des API de ma DLL. J'obtiens en effet en effet l'erreur suivante : "EntryPointNotFoundException". J'ai sûrement oublié quelque chose mais quoi et où ? Est-ce du côté de la DLL que le problème se trouve ou bien dans mon appel VB ? Et où précisément ???

Voici les extraits de mon code. Tout d'abord le .h de la DLL VC++ :






#define






MONITORING_API


__declspec

(


dllexport

)





extern





"C"

MONITORING_API


bool

installerLeMonitoring(LPCWSTR cheminDuClient, HWND hFenetre, PROCESSUS_A_MONITORER** ppProcessus,


int

nombreDeProcessus);








extern









"C"

MONITORING_API


void



desinstallerLeMonitoring();







Puis maintenant l'appel dans l'EXE VB2008 :

Imports

System.Runtime.InteropServices

Private
Declare
Auto
Function installerLeMonitoring
Lib
"D:\Developpements\opb\bin\monitoring.dll" (
ByRef cheminDuClient
As
String,
ByVal hFenetre
As
Integer,
ByVal ppProcessus()
As ProcessusAMonitorer,
ByVal nombreDeProcessus
As
Integer)
As
Boolean

Private
Declare
Auto
Sub desinstallerLeMonitoring
Lib
"D:\Developpements\opb\bin\monitoring.dll" ()

(...)

installerLeMonitoring(Application.ExecutablePath, frmPrincipale.Handle(), processus, nombreDeProcessus)


Si quelqu'un peut m'aider à résoudre ce problème... Je dirais même que si quelqu'un est intéressé globalement par le projet pour m'aider à le mettre au point, je ne dis pas non ! En deux mots la DLL surcharge les appels aux API de gestion de fichier, d'affichage de texte (à l'écran) et d'ouverture de fenêtres (notamment avec la lib Detours), et communique à l'EXE toutes ces informations. Pour le moment le EXE se contente d'afficher ce qu'il reçoit dans un TextBox ! Mais ce qui m'intéresse c'est d'arriver à faire marcher la DLL et à réussir la communication avec l'EXE.

Olivier

1 réponse

Messages postés
9
Date d'inscription
jeudi 27 février 2003
Statut
Membre
Dernière intervention
26 mai 2009

Ca y est ! J'ai trouvé ! En fait j'avais deux anos : une différence de type entre le .h et le .cpp (pointeur de pointeur d'un côté et pointeur de l'autre), et une dans le VB où le tableau de structures était en ByVal au lieu de Byref...
Curieux que le compilateur n'ait pas détecté la première ano.
Bon ! je poursuis la mise au point !

Olivier