Avviso del compilatore (livello 1) C4733
Asm inline assegnato a 'FS:0': gestore non registrato come gestore sicuro
Una funzione che modifica il valore in FS:0 per aggiungere un nuovo gestore eccezioni potrebbe non funzionare con eccezioni sicure, perché il gestore potrebbe non essere registrato come gestore di eccezioni valido (vedere /SAFESEH).
Per risolvere questo avviso, rimuovere la definizione FS:0 o disattivare questo avviso e usare . SAFESEH per specificare i gestori di eccezioni sicuri.
L'esempio seguente genera l'errore 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;
}