Compartir a través de


Error del compilador C3731

el evento 'función1' y el controlador 'función2' son incompatibles; el origen y el controlador de eventos deben tener el mismo tipo de evento.

El origen del evento y el receptor de eventos deben tener el mismo tipo (por ejemplo tipos native en lugar de com). Para corregir este error, haga que los tipos del origen del evento y del controlador de eventos coincidan.

El ejemplo siguiente genera el error C3731:

// C3731.cpp
// compile with: /clr
#using <mscorlib.dll>
[event_source(native)]
struct A {
   __event void MyEvent();
};

[event_receiver(managed)]
// try the following line instead
// [event_receiver(native)]
struct B {
   void func();
   B(A a) {
      __hook(&A::MyEvent, &a, &B::func);   // C3731
   }
};

int main() {
}