Freigeben über


Compilerfehler C3714

'method': Eine Ereignishandlermethode muss die gleiche Aufrufkonvention wie die Quellmethode aufweisen.

Bemerkungen

Sie haben eine Ereignishandlermethode definiert, die nicht dieselbe Aufrufkonvention wie die Quellereignismethode verwendet hat. Um diesen Fehler zu beheben, weisen Sie der Ereignishandlermethode die gleichen Aufrufkonventionen wie die der Quellereignismethode zu. Nehmen Sie beispielsweise im folgenden Code die aufrufenden Konventionen und handler1event1 Übereinstimmungen vor (__cdecl oder __stdcall oder andere). Durch das Entfernen von Schlüsselwörtern der Anrufkonvention aus beiden Deklarationen wird das Problem ebenfalls gelöst, und die Ursache event1 und handler1 Standardeinstellung für diese Anrufkonvention . Weitere Informationen finden Sie unter "Anrufkonventionen ".

Example

Im folgenden Beispiel wird C3714 generiert:

// 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
   }
};