Upozornění kompilátoru (úroveň 1) C4733
Vložený asm přiřazení k fs:0: obslužná rutina není registrována jako bezpečná obslužná rutina
Funkce, která upraví hodnotu ve fs:0 tak, aby přidala novou obslužnou rutinu výjimky, nemusí fungovat s bezpečnými výjimkami, protože obslužná rutina nemusí být registrována jako platná obslužná rutina výjimky (viz /SAFESEH).
Pokud chcete toto upozornění vyřešit, odeberte definici FS:0 nebo toto upozornění vypněte a použijte . SAFESEH k určení bezpečných obslužných rutin výjimek.
Následující ukázka vygeneruje C4733:
// C4733.cpp
// compile with: /W1 /c
// processor: x86
#include "stdlib.h"
#include "stdio.h"
void my_handler()
{
printf("Hello from my_handler\n");
exit(1);
}
int main()
{
_asm {
push my_handler
mov eax, DWORD PTR fs:0
push eax
mov DWORD PTR fs:0, esp // C4733
}
*(int*)0 = 0;
}