Delen via


Compilerfout C3714

'method': een gebeurtenishandlermethode moet dezelfde aanroepconventie hebben als de bronmethode 'methode'

Opmerkingen

U hebt een gebeurtenis-handlermethode gedefinieerd die niet dezelfde aanroepconventie heeft gebruikt als de bron gebeurtenismethode. Als u deze fout wilt oplossen, geeft u de gebeurtenishandlermethode dezelfde aanroepende conventies als die van de bron gebeurtenismethode. Maak in de onderstaande code bijvoorbeeld de aanroepconventies van handler1 en event1 overeenkomen (__cdecl of __stdcall of anderen). Als u trefwoorden voor oproepconventies uit beide declaraties verwijdert, wordt het probleem ook opgelost en zullen event1 en handler1 standaard worden ingesteld op de thiscall oproepconventie. Zie Oproepconventies voor meer informatie.

Example

In het volgende voorbeeld wordt C3714 gegenereerd:

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