Error del compilador C2743Compiler Error C2743

' type ': no se puede detectar un tipo nativo con __clrcall destructor o un constructor de copias'type' : cannot catch a native type with __clrcall destructor or copy constructor

Un módulo compilado con /CLR intentó detectar una excepción de tipo nativo y donde el destructor o el constructor de copia del tipo utiliza __clrcall Convención de llamada.A module compiled with /clr attempted to catch an exception of native type and where the type's destructor or copy constructor uses __clrcall calling convention.

Cuando se compila con /CLR, el control de excepciones espera que las funciones miembro de un tipo nativo se __cdecl y no __clrcall.When compiled with /clr, exception handling expects the member functions in a native type to be __cdecl and not __clrcall. Los tipos nativos con funciones miembro que utilicen __clrcall Convención de llamada no se pueden capturar en un módulo compilado con /CLR.Native types with member functions using __clrcall calling convention cannot be caught in a module compiled with /clr.

Para obtener más información, consulte /clr (Compilación de Common Language Runtime).For more information, see /clr (Common Language Runtime Compilation).

EjemploExample

En el ejemplo siguiente se genera C2743.The following sample generates 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
}