Teilen über


Compilerfehler C2743

'type': Ein systemeigener Typ kann nicht mit __clrcall Destruktor oder Kopierkonstruktor abgefangen werden.

Bemerkungen

Ein mit "/clr " kompiliertes Modul hat versucht, eine Ausnahme vom systemeigenen Typ abzufangen und wo der Destruktor oder Kopierkonstruktor die Aufrufkonvention verwendet __clrcall .

Bei der Kompilierung mit /clr erwartet die Ausnahmebehandlung, dass die Memberfunktionen in einem systemeigenen Typ __cdecl und nicht __clrcall werden. Systemeigene Typen mit Memberfunktionen, die die Aufrufkonvention verwenden __clrcall , 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
}