salut,
j'ai une fonction de callback pour laquelle je veux passer une methode membre :
1 2 3 4 5
| void EditorScreen::FavInit()
{
FavBar= new FavBar(); // items
FavBar->callback(this,EditorScreen::FavShortcutClicked); // enregistre la fonction de callback.
} |
voici la def de la fct :
1 2
| void EditorScreen::FavShortcutClicked( Uint8 bar, Uint8 slot, Uint8 bank )
{... } |
et voici :
1 2 3
| void FavBar::callback(EditorScreen* p, void (EditorScreen::*fct)(Uint8 br, Uint8 sl, Uint8 bk))
{
... } |
voilà j'ai codé ca il y a quelques temps, ca compile et marche tres bien sous VC6 sans le moindre warning...
je passe sous VS2010, et il me sort une erreur :
error C3867: &'EditorScreen::FavShortcutClicked' : liste d'arguments manquante dans l'appel de fonction ; utilisez 'EditorScreen::FavShortcutClicked' pour créer un pointeur vers membre
sur la ligne :
FavBar->callback(this,EditorScreen::FavShortcutClicked);
pourquoi s'attends t-il a des parametres, ce n'est que le nom de la fonction...
si vous avez une idée, merci de me mettre sur une piste.
salutation.
Partager