Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
'Funktion' : Eine "nackte" Funktion kann keine Objekte enthalten, die eine Abwickelung erfordern, wenn eine C++-Ausnahme aufgetreten ist.
Der Compiler konnte das Stapelabspannen auf einer nackten Funktion nicht ausführen, die eine Ausnahme ausgelöst hat, da ein temporäres Objekt in der Funktion erstellt wurde und die C++-Ausnahmebehandlung (/EHsc) angegeben wurde.
Führen Sie zum Beheben dieses Fehlers mindestens eine der folgenden Aktionen aus:
Kompilieren Sie nicht mit /EHsc.
Markieren Sie die Funktion nicht als
naked
.Erstellen Sie kein temporäres Objekt in der Funktion.
Wenn eine Funktion ein temporäres Objekt im Stapel erstellt, wenn die Funktion eine Ausnahme auslöst und die C++-Ausnahmebehandlung aktiviert ist, bereinigt der Compiler den Stapel, wenn eine Ausnahme ausgelöst wird.
Wenn eine Ausnahme ausgelöst wird, wird vom Compiler generierter Code, der als Prolog und Epilog bezeichnet wird und nicht in einer nackten Funktion vorhanden ist, für eine Funktion ausgeführt.
Beispiel
Im folgenden Beispiel wird C3068 generiert:
// C3068.cpp
// compile with: /EHsc
// processor: x86
class A {
public:
A(){}
~A(){}
};
void b(A){}
__declspec(naked) void c() {
b(A()); // C3068
};