Compilerfehler C2743

'Typ': Ein nativer Typ kann nicht mit einem __clrcall oder Kopierkonstruktor abfangen.

Ein modul, das mit /clr kompiliert wurde, hat versucht, eine Ausnahme vom nativen Typ zu fangen, wobei der Destruktor oder Kopierkonstruktor des Typs eine Aufrufkonvention __clrcall verwendet.

Bei der Kompilierung mit /clr erwartet die Ausnahmebehandlung, dass die Memberfunktionen in einem nativen Typ __cdecl und nicht __clrcall. Native Typen mit Memberfunktionen, die die Aufrufkonvention __clrcall verwenden, können nicht in einem modul erfasst werden, das mit /clr kompiliert wurde.

Weitere Informationen finden Sie unter /clr (Common Language Runtime-Kompilierung).

Beispiel

Im folgenden Beispiel wird C2743 generiert.

// 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
}