다음을 통해 공유


컴파일러 오류 C3709

'function': __hook/__unhook의 이벤트 지정 구문이 잘못되었습니다.

__hook 또는 __unhook 사용하여 이벤트 원본을 지정하는 경우 첫 번째 매개 변수는 유효한 이벤트 메서드여야 하고 두 번째 매개 변수는 메서드가 아닌 유효한 이벤트 원본 개체여야 합니다.

다음 샘플에서는 C3709를 생성합니다.

// C3709.cpp
// compile with: /LD
[event_source(native)]
class CEventSrc
{
public:
   __event void event1();
};

[event_receiver(native)]
class CEventRec
{
public:
   void handler1()
   {
   }

   void HookEvents(CEventSrc* pSrc)
   {
      __hook(bad, pSrc, CEventRec::handler1);   // C3709
      // Try the following line instead:
      // __hook(&CEventSrc::event1, pSrc, CEventRec::handler1);
   }

   void UnhookEvents(CEventSrc* pSrc)
   {
      __unhook(&CEventSrc::event1, pSrc, CEventRec::handler1);
   }
};