Предупреждение компилятора (уровень 1) C4733
Встроенный asm, назначающий "FS:0": обработчик не зарегистрирован в качестве безопасного обработчика
Функция, изменяющая значение в FS:0, чтобы добавить новый обработчик исключений, может не работать с безопасными исключениями, так как обработчик не может быть зарегистрирован в качестве допустимого обработчика исключений (см . /SAFESEH).
Чтобы устранить это предупреждение, удалите определение FS:0 или отключите это предупреждение и используйте . SAFESEH , чтобы указать безопасные обработчики исключений.
Следующий пример приводит к возникновению ошибки 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;
}