Bonjour à tous,
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++ :
Puis maintenant l'appel dans l'EXE VB2008 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 #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();
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Imports System.Runtime.InteropServices Private Declare Auto Function installerLeMonitoring Lib"D:\Developpements\opb\bin\monitoring.dll" (ByRef cheminDuClient AsString, ByVal hFenetre AsInteger, ByVal ppProcessus() As ProcessusAMonitorer, ByVal nombreDeProcessus AsInteger) AsBoolean 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
Partager