Peringatan Kompilator (Tingkat 1) C4733
Asm sebaris yang ditetapkan ke 'FS:0' : handler tidak terdaftar sebagai handler aman
Fungsi yang memodifikasi nilai di FS:0 untuk menambahkan handler pengecualian baru mungkin tidak berfungsi dengan Pengecualian Aman, karena handler mungkin tidak terdaftar sebagai handler pengecualian yang valid (lihat /SAFESEH).
Untuk mengatasi peringatan ini, hapus definisi FS:0 atau nonaktifkan peringatan ini dan gunakan . SAFESEH untuk menentukan penangan pengecualian yang aman.
Sampel berikut menghasilkan 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;
}