Pointeur sur méthode + erreur C2064
Bonjour,
J'ai un problème concernant un pointeur sur méthode que je récupère à l'aide d'un vecteur de pair :
Code:
1 2
|
std::vector<std::pair<ZenZiAPI::IModule::p_callback,ZenZiAPI::hookPosition>> _VModules; |
Mon pointeur est de la forme suivante :
Code:
1 2
|
typedef bool (ZenZiAPI::IModule::*p_callback)(ITools&); |
Il à été définis dans la pair de a manière suivante :
Code:
1 2
|
this->_LPHook = std::make_pair(static_cast<ZenZiAPI::IModule::p_callback>(&ModulePHP::GetPHP), ZenZiAPI::MIDDLE); |
Il pointe sur cette méthode dans une DLL:
Code:
1 2
|
bool ModulePHP::GetPHP(ZenZiAPI::ITools &_EOTools) |
Lorsque je veux l'exploiter dans la classe appelant ma DLL et récupérant ce pointeur voici le code :
Code:
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))); |
voici l'erreur :
Code:
1 2
|
Error 1 error C2064: term does not evaluate to a function taking 1 arguments |
Sauriez vous d'où vient l'erreur ?
Merci par avance