Freigeben über


Compilerfehler C3711

'method': Eine nicht verwaltete Ereignisquellmethode muss "void" oder einen integralen Typ zurückgeben.

Bemerkungen

Sie haben eine Methode in der Ereignisquelle definiert, die keine Leere oder einen integralen Typ zurückgegeben hat. Um diesen Fehler zu beheben, müssen Sie festlegen, dass das Ereignis und der Ereignishandler über einen Rückgabetyp void oder einen integralen Typ verfügen, z int . B. oder long.

Example

Im folgenden Beispiel wird C3711 generiert:

// C3711.cpp
#include <atlbase.h>
#include <atlcom.h>
#include <atlctl.h>

[event_source(native)]
class CEventSrc {
public:
   __event float event1();   // C3711
   // try the following line instead
   // __event int event1();
   // also change the handler, below
};

[event_receiver(native)]
class CEventRec {
public:
   float handler1() {         // change float to int
      return 0.0;             // change 0.0 to 0
   }
   void HookEvents(CEventSrc* pSrc) {
      __hook(CEventSrc::event1, pSrc, CEventRec::handler1);
   }
   void UnhookEvents(CEventSrc* pSrc) {
      __unhook(CEventSrc::event1, pSrc, CEventRec::handler1);
   }
};

int main() {
}