Megosztás a következőn keresztül:


C3068 fordítási hiba

"függvény": A "meztelen" függvény nem tartalmazhat olyan objektumokat, amelyek C++ kivétel esetén visszagörgetést igényelnének.

Megjegyzések

A fordító nem tudta végrehajtani a veremlecsúszást egy naked függvényen, amely kivételt dobott, mert ideiglenes objektum jött létre a függvényben, és a C++ kivételkezelés (/EHsc) meg lett adva.

A hiba megoldásához tegye az alábbiak közül legalább egyet:

  • Ne fordítás /EHsc használatával.

  • Ne jelölje meg a függvényt naked.

  • Ne hozzon létre ideiglenes objektumot a függvényben.

Ha egy függvény ideiglenes objektumot hoz létre a veremen, ha a függvény kivételt okoz, és ha a C++ kivételkezelés engedélyezve van, a fordító törli a vermet, ha kivételt okoz.

Kivétel esetén a fordító által létrehozott, prolognak és epilognak nevezett kód, amely nem szerepel meztelen függvényben, egy függvényhez lesz végrehajtva.

Example

Az alábbi példa c3068-at hoz létre:

// C3068.cpp
// compile with: /EHsc
// processor: x86
class A {
public:
   A(){}
   ~A(){}
};

void b(A){}

__declspec(naked) void c() {
   b(A());   // C3068
}