salut,
j'ai une fonction de callback pour laquelle je veux passer une methode membre :
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.
}
voici la def de la fct :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
void EditorScreen::FavShortcutClicked( Uint8 bar, Uint8 slot, Uint8 bank )
{... }
et voici :
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 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
	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.

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.