Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
"function" : funkcja "naked" nie może zawierać obiektów, które wymagają odwijania, jeśli wystąpił wyjątek języka C++.
Uwagi
Kompilator nie mógł wykonać odwijania stosu w funkcji naked , która zgłosiła wyjątek, ponieważ został utworzony obiekt tymczasowy w funkcji i określono obsługę wyjątków języka C++ (/EHsc).
Aby rozwiązać ten błąd, wykonaj co najmniej jedną z następujących czynności:
Nie kompiluj z /EHsc.
Nie oznaczaj funkcji jako
naked.Nie twórz obiektu tymczasowego w funkcji .
Jeśli funkcja tworzy obiekt tymczasowy na stosie, jeśli funkcja zgłasza wyjątek, a jeśli obsługa wyjątków języka C++ jest włączona, kompilator wyczyści stos, jeśli zostanie zgłoszony wyjątek.
Gdy zgłaszany jest wyjątek, wygenerowany kod kompilatora, nazywany prologem i epilogiem, który nie jest obecny w funkcji naked, jest wykonywany dla funkcji.
Przykład
Poniższy przykład generuje kod C3068:
// C3068.cpp
// compile with: /EHsc
// processor: x86
class A {
public:
A(){}
~A(){}
};
void b(A){}
__declspec(naked) void c() {
b(A()); // C3068
}