컴파일러 오류 C3717
'method': 이벤트를 발생시키는 메서드를 정의할 수 없습니다.
구현을 포함하는 이벤트 메서드를 선언했습니다. __event 메서드 선언에는 정의가 있을 수 없습니다. 이 오류를 해결하려면 이벤트 메서드 선언에 정의가 없는지 확인합니다. 예를 들어 아래 코드에서 주석으로 표시된 대로 선언에서 event1
함수 본문을 제거합니다.
다음 샘플에서는 C3717을 생성합니다.
// C3717.cpp
[event_source(native)]
class CEventSrc {
public:
__event void event1() { // C3717
}
// remove definition for event1 and substitute following declaration
// __event void event1();
};
[event_receiver(native)]
class CEventRec {
public:
void handler1() {
}
void HookEvents(CEventSrc* pSrc) {
__hook(CEventSrc::event1, pSrc, CEventRec::handler1);
}
void UnhookEvents(CEventSrc* pSrc) {
__unhook(CEventSrc::event1, pSrc, CEventRec::handler1);
}
};
int main() {
}