Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
'class': uma classe gerenciada ou WinRT só pode dar suporte a eventos gerenciados ou WinRT
Observações
Somente eventos .NET são compatíveis com classes gerenciadas. Apenas eventos Windows Runtime são compatíveis com classes Windows Runtime. Para corrigir esse erro no código gerenciado, altere o parâmetro de tipo de event_source e event_receiver de native para managed. Como alternativa, remova o atributo.
Exemplo
O exemplo a seguir gera C3825 e mostra como corrigi-lo:
// C3825a.cpp
// compile with: /clr
public delegate void del1();
[event_source(native)] // To fix, change 'native' to 'managed' or delete this line
ref class CEventSrc
{
public:
event del1^ event1; // C3825
void FireEvents() {
event1();
}
};
[event_receiver(native)] // To fix, change 'native' to 'managed' or delete this line
ref class CEventRec
{
public:
void handler1()
{
System::Console::WriteLine("Executing handler1().\n");
}
void HookEvents(CEventSrc^ pSrc)
{
pSrc->event1 += gcnew del1(this, &CEventRec::handler1);
}
void UnhookEvents(CEventSrc^ pSrc)
{
pSrc->event1 -= gcnew del1(this, &CEventRec::handler1);
}
};
int main()
{
CEventSrc^ pEventSrc = gcnew CEventSrc;
CEventRec^ pEventRec = gcnew CEventRec;
pEventRec->HookEvents(pEventSrc);
pEventSrc->FireEvents();
pEventRec->UnhookEvents(pEventSrc);
}