Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
'Ereignishandler': Eine Ereignishandlermethode muss dieselbe Speicherklasse wie das Quellereignis aufweisen.
Bemerkungen
Ein Ereignis hat eine andere Speicherklasse als der Ereignishandler, mit dem es eingebunden ist. Dieser Fehler tritt beispielsweise auf, wenn der Ereignishandler eine statische Memberfunktion ist und das Ereignis nicht statisch ist. Um diesen Fehler zu beheben, weisen Sie dem Ereignis und dem Ereignishandler die gleiche Speicherklasse zu.
Example
Im folgenden Beispiel wird C3703 generiert:
// 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);
}