Поделиться через


Ошибка компилятора C3739

"class": синтаксис поддерживается только в том случае, если параметр "layout_dependent" event_receiver имеет значение true

Вы пытались подключить весь интерфейс событий, но layout_dependent при использовании атрибута event_receiver не имеет значения true; необходимо подключить одно событие одновременно.

Следующий пример приводит к возникновению ошибки C3739:

// C3739.cpp
struct A
{
   __event void e();
};

// event_receiver is implied
// [ event_receiver(layout_dependent=false)]

// use the following line instead
// [event_receiver(com, layout_dependent=true), coclass ]
struct B
{
   void f();
   B(A* a)
   {
      __hook(A, a, &B::f);   // C3739
      // use the following line instead to hook a single event
      // __hook(&A::e, a, &B::f);
   }
};

int main()
{
}