Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
'function': una funzione 'naked' non può contenere oggetti che richiedono la rimozione se si è verificata un'eccezione C++
Osservazioni:
Il compilatore non è riuscito a eseguire la rimozione dello stack su una funzione naked che ha generato un'eccezione perché è stato creato un oggetto temporaneo nella funzione e nella gestione delle eccezioni C++ (/EHsc) è stato specificato.
Per risolvere questo errore, eseguire almeno una delle operazioni seguenti:
Non compilare con /EHsc.
Non contrassegnare la funzione come
naked.Non creare un oggetto temporaneo nella funzione .
Se una funzione crea un oggetto temporaneo nello stack, se la funzione genera un'eccezione e se la gestione delle eccezioni C++ è abilitata, il compilatore pulisce lo stack se viene generata un'eccezione.
Quando viene generata un'eccezione, il codice generato dal compilatore, denominato prologo ed epilogo e che non sono presenti in una funzione naked, viene eseguito per una funzione.
Esempio
L'esempio seguente genera l'errore C3068:
// C3068.cpp
// compile with: /EHsc
// processor: x86
class A {
public:
A(){}
~A(){}
};
void b(A){}
__declspec(naked) void c() {
b(A()); // C3068
}