다음을 통해 공유


컴파일러 오류 C3741

'class': event_receiver = true의 'layout_dependent' 매개 변수인 경우 coclass여야 합니다.

event_receiver 클래스의 경우 layout_dependent=true 클래스에도 coclass 특성이 있어야 합니다.

다음 샘플에서는 C3741을 생성합니다.

// C3741.cpp
// compile with: /c
// C3741 expected
#define _ATL_ATTRIBUTES 1
#include <atlbase.h>
#include <atlcom.h>
[module(name="xx")];

[object, uuid("00000000-0000-0000-0000-000000000001")]
__interface I{ HRESULT f(); };

// Delete the following line to resolve.
[ event_receiver(com, layout_dependent=true)]

// class or struct must be declared with coclass
// Uncomment the following line to resolve.
// [ event_receiver(com, layout_dependent=true), coclass, uuid("00000000-0000-0000-0000-000000000002")]
struct R : I {
   HRESULT f(){ return 0; }
   R(){}
   R(I* a){ __hook(I, a); }
};