Bonjour,
J'ai un problème concernant un pointeur sur méthode que je récupère à l'aide d'un vecteur de pair :
Mon pointeur est de la forme suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 std::vector<std::pair<ZenZiAPI::IModule::p_callback,ZenZiAPI::hookPosition>> _VModules;
Il à été définis dans la pair de a manière suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 typedef bool (ZenZiAPI::IModule::*p_callback)(ITools&);
Il pointe sur cette méthode dans une DLL:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 this->_LPHook = std::make_pair(static_cast<ZenZiAPI::IModule::p_callback>(&ModulePHP::GetPHP), ZenZiAPI::MIDDLE);
Lorsque je veux l'exploiter dans la classe appelant ma DLL et récupérant ce pointeur voici le code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 bool ModulePHP::GetPHP(ZenZiAPI::ITools &_EOTools)
voici l'erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Tools *T = new Tools(); ZenZiAPI::IModule::p_callback test = this->_VModules.begin()->first; /* PROBLEME ICI */ (test)((*static_cast<ZenZiAPI::ITools*>(T)));
Sauriez vous d'où vient l'erreur ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Error 1 error C2064: term does not evaluate to a function taking 1 arguments
Merci par avance
Partager