Bonjour,

Je dois écrire un petit Keylogger pour windows . Après quelques tests possitif sans utiliser la POO, j'ai voulu faire les choses au propre et me faire une classe :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
class Keylogger
{
public:
	Keylogger();
	~Keylogger();
 
	LRESULT CALLBACK KeyBoardEvent(int code, WPARAM wParam, LPARAM lParam);
	LRESULT CALLBACK MouseEvent(int code, WPARAM wParam, LPARAM lParam);
 
private:
	bool MajIsPut();
};
Comme vous le voyez il y a deux fonctions callback . Leurs adresses sont passés en argument dans la fonction SetWindowsHookEx ():

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
int main()
{
	Keylogger loger;
	
	HHOOK KeyBoard = SetWindowsHookEx(WH_KEYBOARD_LL, &loger.KeyBoardEvent, NULL, NULL);
	HHOOK Mouse = SetWindowsHookEx(WH_MOUSE_LL, &loger.MouseEvent, NULL, NULL);
/*....*/
	UnhookWindowsHookEx(KeyBoard); // decroche l'attache au keyboard
	UnhookWindowsHookEx(Mouse);
	return 0;
}
Malheureusement, j'obtiens une magnifique erreur :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
error C2276: '&'*: opération non conforme sur l'expression d'une fonction membre liée
error C2660: 'SetWindowsHookExA'*: la fonction ne prend pas 3 arguments
error C2276: '&'*: opération non conforme sur l'expression d'une fonction membre liée
error C2660: 'SetWindowsHookExA'*: la fonction ne prend pas 3 arguments
Je ne comprends pas d'ou peut provenir le problème, sachant que la même utilisation sans POO marche très bien .
Sans POO ça donne ça :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
        HHOOK KeyBoard = SetWindowsHookEx(WH_KEYBOARD_LL, KeyboardProc, NULL, NULL);
	HHOOK Mouse = SetWindowsHookEx(WH_MOUSE_LL, MouseProc, NULL, NULL);
Doc callback windows : https://msdn.microsoft.com/fr-fr/lib...(v=vs.85).aspx
Doc setWindowsHookEx : https://msdn.microsoft.com/en-us/lib...(v=vs.85).aspx

J'ai surement oublié de préciser certaines choses, n'hésitez pas à me le faire remarquer .
Merci pour votre aide