Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
'zeiger' : Framepointer register 'register' modified by inline assembly code
Bemerkungen
Ein Framezeigerregister wurde geändert. Sie müssen das Register in Ihrem Inlineassemblyblock oder ihrer Framevariable (je nach geändertem Register) speichern und wiederherstellen, oder Ihr Code funktioniert möglicherweise nicht ordnungsgemäß.
Example
Im folgenden Beispiel wird C4731 generiert:
// C4731.cpp
// compile with: /W1 /LD
// processor: x86
// C4731 expected
void bad(int p) {
__asm
{
mov ebp, 1
}
if (p == 1)
{
// ...
}
}
EBP ist der Framepointer (FPO ist unzulässig) und wird geändert. Wenn p später darauf verwiesen wird, wird sie relativ zu EBP. Wurde jedoch EBP vom Code überschrieben, sodass das Programm nicht ordnungsgemäß funktioniert und sogar fehlerhaft ist.