Sdílet prostřednictvím


Chyba kompilátoru C3714

'method': Metoda obslužné rutiny události musí mít stejnou konvenci volání jako zdroj 'method'

Poznámky

Definovali jste metodu obslužné rutiny události, která nepoužila stejnou konvenci volání jako metoda zdrojové události. Chcete-li tuto chybu opravit, udělte obslužné rutině události stejné konvence volání jako metody zdrojové události. Například v následujícím kódu proveďte konvence handler1 volání a event1 shody (__cdecl nebo __stdcall nebo jiné). Odebráním klíčových slov konvence volání z obou deklarací se problém vyřeší a způsobíevent1, že handler1 se tato konvence volání ve výchozím nastavení nastaví. Další informace najdete v tématu Konvence volání.

Example

Následující příklad vygeneruje 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
   }
};