Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
'function' : Funkce 'naked' nemůže obsahovat objekty, které by vyžadovaly odvíjení, pokud došlo k výjimce jazyka C++.
Poznámky
Kompilátor nemohl provést uvolnění zásobníku u nahé funkce, která vyvolala výjimku, protože byl vytvořen dočasný objekt ve funkci a bylo zadáno zpracování výjimek jazyka C++ (/EHsc).
Pokud chcete tuto chybu vyřešit, proveďte alespoň jednu z následujících věcí:
Nekopilujte s /EHsc.
Neoznamujte funkci jako
naked.Nevytvořte ve funkci dočasný objekt.
Pokud funkce v zásobníku vytvoří dočasný objekt, pokud funkce vyvolá výjimku a pokud je povolené zpracování výjimek jazyka C++, kompilátor zásobník vyčistí, pokud dojde k vyvolání výjimky.
Při vyvolání výjimky se pro funkci spustí kompilátor vygenerovaný kód, který se nazývá prolog a epilog a který není v nahé funkci.
Příklad
Následující příklad vygeneruje C3068:
// C3068.cpp
// compile with: /EHsc
// processor: x86
class A {
public:
A(){}
~A(){}
};
void b(A){}
__declspec(naked) void c() {
b(A()); // C3068
}