Erreur du compilateur C3714
'method' : une méthode de gestionnaire d’événements doit avoir la même convention d’appel que la source 'method'
Vous avez défini une méthode de gestionnaire d’événements qui n’a pas utilisé la même convention d’appel que la méthode d’événement source. Pour corriger cette erreur, donnez à la méthode du gestionnaire d’événements les mêmes conventions d’appel que celles de la méthode d’événement source. Par exemple, dans le code ci-dessous, effectuez les conventions d’appel et handler1
event1
la correspondance (__cdecl ou __stdcall ou d’autres). La suppression des mots clés de convention d’appel des deux déclarations résout également le problème, et provoque et entraîne event1
la handler1
valeur par défaut de la convention d’appel de cet appel . Pour plus d’informations, consultez Conventions d’appel.
L’exemple suivant génère l’erreur C3714 :
// C3714.cpp
// compile with: /c
// processor: x86
[event_source(native)]
class CEventSrc {
public:
__event void __cdecl event1();
// try the following line instead
// __event void __stdcall event1();
};
[event_receiver(native)]
class CEventRec {
public:
void __stdcall handler1() {}
void HookEvents(CEventSrc* pSrc) {
__hook(&CEventSrc::event1, pSrc, &CEventRec::handler1); // C3714
}
void UnhookEvents(CEventSrc* pSrc) {
__unhook(&CEventSrc::event1, pSrc, &CEventRec::handler1); // C3714
}
};