Ошибка компилятора C3723
Function: не удалось разрешить событие
function
не удалось разрешить событие для вызова.
Следующий пример приводит к возникновению ошибки C3723:
// C3723.cpp
struct A {
// To resolve, comment void f(int); and uncomment the __event function
void f(int);
// __event void f(int);
void f(float);
};
struct B {
void g(int);
B(A* a) {
__hook(&A::f, a, &B::g); // C3723
}
};
int main() {
}
__hook
и __unhook
несовместимы с /clr
программированием. Используйте вместо этого операторы += и -=.
Следующий пример приводит к возникновению ошибки C3723:
// C3723b.cpp
// compile with: /clr
using namespace System;
public delegate void delegate1();
public ref class CPSource {
public:
event delegate1^ event1;
};
public ref class CReceiver {
public:
void Handler1() {
}
void UnhookAll(CPSource^ pSrc) {
__unhook(&CPSource::event1, pSrc, &CReceiver::Handler1); // C3723
// Try the following line instead.
// pSrc->event1 -= gcnew delegate1(this, &CReceiver::Handler1);
}
};
int main() {
}