salut,
j'ai une fonction de callback pour laquelle je veux passer une methode membre :
voici la def de la fct :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 void EditorScreen::FavInit() { FavBar= new FavBar(); // items FavBar->callback(this,EditorScreen::FavShortcutClicked); // enregistre la fonction de callback. }
et voici :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 void EditorScreen::FavShortcutClicked( Uint8 bar, Uint8 slot, Uint8 bank ) {... }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 (sans doute, VS2010 respecte t-il mieux les standards...)
voici l'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 :
pourquoi s'attends t-il a des parametres, ce n'est que le nom de la fonction...
Code : Sélectionner tout - Visualiser dans une fenêtre à part FavBar->callback(this,EditorScreen::FavShortcutClicked);
si vous avez une idée, merci de me mettre sur une piste.
salutation.
PS : je me suis planté en postant ce message il y a une heure, il s'est retrouvé dans le forum C++/CLI alors que celà ne concerne en rien "CLI" (je dev en C++ simple, non managé, non MFC, non CLI).
Je ne suis pas arrivé a déplacé mon message original, si un admin peu supprimer celui qui est dans le forum CLI. merci.
Partager