Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
"Procedura obsługi zdarzeń": metoda obsługi zdarzeń musi mieć taką samą klasę magazynu, jak źródło "zdarzenie"
Uwagi
Zdarzenie ma inną klasę magazynu niż procedura obsługi zdarzeń, do której jest podłączona. Na przykład ten błąd występuje, jeśli program obsługi zdarzeń jest statyczną funkcją składową, a zdarzenie nie jest statyczne. Aby naprawić ten błąd, nadaj zdarzeniu i programowi obsługi zdarzeń tę samą klasę magazynu.
Example
Poniższy przykład generuje kod C3703:
// C3703.cpp
// C3703 expected
#include <stdio.h>
[event_source(type=native)]
class CEventSrc {
public:
__event static void MyEvent();
};
[event_receiver(type=native)]
class CEventHandler {
public:
// delete the following line to resolve
void MyHandler() {}
// try the following line instead
// static void MyHandler() {}
void HookIt(CEventSrc* pSource) {
__hook(CEventSrc::MyEvent, pSource, &CEventHandler::MyHandler);
}
void UnhookIt(CEventSrc* pSource) {
__unhook(CEventSrc::MyEvent, pSource, &CEventHandler::MyHandler);
}
};
int main() {
CEventSrc src;
CEventHandler hnd;
hnd.HookIt(&src);
__raise src.MyEvent();
hnd.UnhookIt(&src);
}