Partilhar via


Aviso do compilador (Nível 1) C4733

Asm inline atribuindo a 'FS:0' : manipulador não registrado como manipulador seguro

Observações

Uma função modificando o valor em FS:0 para adicionar um novo manipulador de exceção pode não funcionar com Safe Exceptions, porque o manipulador pode não estar registrado como um manipulador de exceção válido (consulte /SAFESEH).

Para resolver esse aviso, remova a definição FS:0 ou desative esse aviso e use . SAFESEH para especificar os manipuladores de exceção seguros.

Example

O exemplo a seguir gera 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;
}