Condividi tramite


Errore del compilatore C2743

'type': impossibile intercettare un tipo nativo con __clrcall distruttore o costruttore di copia

Un modulo compilato con /clr ha tentato di intercettare un'eccezione di tipo nativo e in cui il distruttore o il costruttore di copia del tipo usa __clrcall la convenzione di chiamata.

Quando viene compilato con /clr, la gestione delle eccezioni prevede che le funzioni membro in un tipo nativo siano __cdecl e non __clrcall. I tipi nativi con funzioni membro che usano __clrcall la convenzione di chiamata non possono essere rilevati in un modulo compilato con /clr.

Per altre informazioni, vedere /clr (Compilazione Common Language Runtime).

Esempio

L'esempio seguente genera l'errore 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
}