Erro do compilador C3711
'method': um método de origem de evento não gerenciado precisa retornar void ou um tipo integral
Você definiu um método na origem do evento que não retornou nulo ou um tipo integral. Para corrigir esse erro, faça com que o manipulador de eventos e o evento tenham um tipo de retorno void
ou um tipo integral, como int
ou long
.
O seguinte exemplo gera o erro 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() {
}