Anmerkung
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen, dich anzumelden oder die Verzeichnisse zu wechseln.
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen , die Verzeichnisse 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.