Partilhar via


Erro do compilador C2743

'type' : não é possível capturar um tipo nativo com __clrcall construtor destructor ou copy

Observações

Um módulo compilado com /clr tentou capturar uma exceção do tipo nativo e onde o construtor destructor ou copy do tipo usa __clrcall a convenção de chamada.

Quando compilado com /clr, o tratamento de exceções espera que as funções de membro em um tipo nativo sejam __cdecl e não __clrcall. Tipos nativos com funções de membro usando __clrcall convenção de chamada não podem ser capturados em um módulo compilado com /clr.

Para obter mais informações, consulte /clr (Common Language Runtime Compilation).

Exemplo

O exemplo a seguir gera C2743.

// C2743.cpp
// compile with: /clr
public struct S {
   __clrcall ~S() {}
};

public struct T {
   ~T() {}
};

int main() {
   try {}
   catch(S) {}   // C2743
   // try the following line instead
   // catch(T) {}

   try {}
   catch(S*) {}   // OK
}