Certains CodeCoulée implicite pour le gestionnaire de méthodes?
typedef void (*EventHandler) (EventObject* sender, EventArgs* args, void* closure);
class Control
{
void AddHandler(int eventId, EventHandler handler, void* data)
}
class SubControl
{
static void mousemove_cb(EventObject* sender, MouseEventArgs* calldata, void* closure);
}
L'erreur
error C2664: 'Control::AddHandler' : cannot convert parameter 2 from 'void (__cdecl *)(EventObject *,MouseEventArgs *,void *)' to 'EventHandler'
Voici la ligne qui produit l'erreur:
control.AddHandler(MouseMoveEvent, mousemove_cb, 0);
Description de
Le problème est que MouseEventArgs est une sous-classe d'EventArgs! Alors, y a-t-il un moyen d'avoir un casting automatique et d'enregistrer ma méthode avec le paramètre 'Event args'?
on peut supposer que '' MouseEventArgs' dérive de EventArgs' et vos en-têtes sont correctement configurés de telle sorte que le code peut déterminer cela? est-ce – acron