다음을 통해 공유


컴파일러 경고(수준 1) C4733

'FS:0'에 할당되는 인라인 asm: 처리기가 안전 처리기로 등록되지 않음

FS:0에서 값을 수정하여 새 예외 처리기를 추가하는 함수는 처리기가 유효한 예외 처리기로 등록되지 않을 수 있으므로 Safe Exceptions에서 작동하지 않을 수 있습니다(/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;
}