Bonjour, dans une classe C++, j'ai deux fonction dont l'une prend l'autre en paramètre.

La fonction ParseSimple prend un
Code : Sélectionner tout - Visualiser dans une fenêtre à part
int (&testchgmtpage)(const char *)
en paramètre. je lui donne par exemple la fonction

Code : Sélectionner tout - Visualiser dans une fenêtre à part
int MAClasse::detectChgmtPageBB(const char * ligne)
en paramètre de


Code : Sélectionner tout - Visualiser dans une fenêtre à part
ParseSimple(pathFile, "BB",(detectChgmtPageSB));
défini par

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
CString MAClasse::ParseSimple(CString pathFile, CString nom, int (&testchgmtpage)(const char *) )
{
 
// code
 
}
j'ai en cela suivi le tutorial "developpez" http://c.developpez.com/megacours/x2012.html

Le compilateur me renvoi l'erreur suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
Z:\Affaires\xxxxxxxx\xxxxxxx\xxxx.cpp(137) : error C2664: 'ParseSimple' : cannot convert parameter 3 from 'int (const char *)' to 'int (__cdecl *)(const char *)'
        None of the functions with this name in scope match the target type
j'ai essayé de caster avec ce fameux __cdecl, mais ça génère une erreur de syntaxe.

Que puis-je faire ?