Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
"funktion" : en "naken" funktion får inte innehålla objekt som skulle kräva avspolning om ett C++-undantag inträffade
Anmärkningar
Kompilatorn kunde inte utföra stackavveckling på en naked funktion som utlöste ett undantag eftersom ett tillfälligt objekt skapades i funktionen och C++ undantagshantering (/EHsc) angavs.
Lös det här felet genom att göra minst något av följande:
Kompilera inte med /EHsc.
Markera inte funktionen som
naked.Skapa inte ett tillfälligt objekt i funktionen.
Om en funktion skapar ett tillfälligt objekt i stacken, om funktionen utlöser ett undantag, och om C++-undantagshantering är aktiverat, rensar kompilatorn stacken om ett undantag utlöses.
När ett undantag utlöses körs kompilatorgenererad kod, kallad prolog och epilog och som inte finns i en naken funktion, för en funktion.
Example
I följande exempel genereras C3068:
// C3068.cpp
// compile with: /EHsc
// processor: x86
class A {
public:
A(){}
~A(){}
};
void b(A){}
__declspec(naked) void c() {
b(A()); // C3068
}