Monitoring : appel d'une DLL VC++ en VB2008
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++ :
Code:
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(); |
Puis maintenant l'appel dans l'EXE VB2008 :
Code:
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