Compilerfehler C2743
'Typ': catch von systemeigenem Typ mit __clrcall-Destruktor oder copy-Konstruktor nicht möglich
Ein mit /clr (nicht mit /clr:pure) kompiliertes Modul hat versucht, eine Ausnahme systemeigenen Typs aufzufangen, wobei der Destruktor bzw. copy-Konstruktor des Typs die __clrcall-Aufrufkonvention verwendet.
Von einer mit /clr (nicht /clr:pure) kompilierten Ausnahmebehandlung wird erwartet, dass es sich bei den Memberfunktionen in einem systemeigenen Typ um __cdecl und nicht um __clrcall handelt.Systemeigene Typen mit Memberfunktionen, die die __clrcall-Aufrufkonvention verwenden, können nicht in einem mit /clr kompilierten Modul abgefangen werden.
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
}