Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
'functie': een 'naakte' functie kan geen objecten bevatten die moeten worden afgewikkeld als er een C++-uitzondering is opgetreden
Opmerkingen
De compiler was niet in staat de stack af te wikkelen bij een naked functie die een uitzondering heeft geworpen omdat er een tijdelijk object in de functie werd gecreƫerd en C++-uitzonderingsafhandeling (/EHsc) was gespecificeerd.
Ga op een van de volgende manieren te werk om deze fout op te lossen:
Compileer niet met /EHsc.
Markeer de functie niet als
naked.Maak geen tijdelijk object in de functie.
Als een functie een tijdelijk object op de stack maakt, als de functie een uitzondering genereert en als de verwerking van C++-uitzonderingen is ingeschakeld, wordt de stack opgeschoond als er een uitzondering wordt gegenereerd.
Wanneer er een uitzondering wordt gegenereerd, wordt compiler gegenereerde code, de prolog en epilog genoemd en die niet aanwezig zijn in een naakte functie, uitgevoerd voor een functie.
Example
In het volgende voorbeeld wordt C3068 gegenereerd:
// C3068.cpp
// compile with: /EHsc
// processor: x86
class A {
public:
A(){}
~A(){}
};
void b(A){}
__declspec(naked) void c() {
b(A()); // C3068
}