Partager via


Erreur du compilateur C3711

'method' : une méthode source d’événement non managée doit retourner void ou un type intégral

Vous avez défini une méthode dans la source d’événement qui n’a pas retourné void ou un type intégral. Pour corriger cette erreur, faites en sorte que l’événement et le gestionnaire d’événements aient un type de retour ou void un type intégral tel que int ou long.

L’exemple suivant génère l’erreur C3711 :

// 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() {
}