Bonjour à tous,
Je vous explique mon problème:
J'ai un executable qui possède une fonction exportée. Nommons la exe_fn1.
J'ai une DLL qui possède une fonction exportée dll_fn1.
- exe_fn1 ne fait qu'ajouter bêtement un texte dans une listeBox de l'executable..
- dll_fn1 initialise un hook WH_CBT
Il n'y aucun problème au niveau du hook, je récupère bien les messages.
Par contre, je galère pour faire communiquer ma DLL et mon executable dans le sens DLL -> executable.
Pour cela, ma DLL, à l'initialisation du Hook, recupere l'adresse de exe_fn1.
Dans la fonction callback du hook WH_CBT, à chaque message recu, je veux appeler exe_fn1 pour qu'un texte s'affiche sur la listeBox.
Sauf que dès lors que exe_fn1 est appelée, cela fige direct le programme, plante mon explorer, ..., enfin bref la galère.
Ex:
Si vous avez une idée, faites moi signe
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 static LRESULT CALLBACK CBTCallback(int code, WPARAM wparam, LPARAM lparam) { if (code >= 0) { UINT msg = 0; if (code == HCBT_ACTIVATE) exe_fn1 (); // crash } return CallNextHookEx(hookCbt, code, wparam, lparam); }
PS: Selon vous, quel est le meilleur moyen pour faire communiquer une DLL et un executable pour passer des structures par exemple. J'ai choisi les fonctions exportees, mais ce n'est peut etre pas la meilleur methode.
Merci.
Vince
http://vroy1.free.fr/wpfr/
Partager