본문 바로가기

Visual Studio

Visual Studio "This function or variable may be unsafe." 에러 해결(우회) 방법

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

error C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. c:\users\deskdos\documents\visual studio 2013\projects\consoleapplication7\consoleapplication7\소스.c 6 1 ConsoleApplication7

 

Visual Studio 2013 버전부터 scanf 등의 함수를 컴파일 시, 오류를 발생시킵니다.

이는 오버플로우 공격등에 scanf 등의 함수가 취약하여 scanf_s를 대신 사용하라는 내용을 포함하며 이 경우, 마지막 인자에 크기를 넣어줘야 합니다.

(2013 이전 버전은 WARNING으로 처리되며, 컴파일은 수행됩니다.)


만약 scanf_s 가 아닌 기존 scanf 등의 함수를 사용하려면 아래와 같은 방법을 이용하여 우회할 수 있습니다.

(아래 두 방법 중 하나만 적용하시면 됩니다.)


1. 프로젝트에서 오류 우회

  1) 프로젝트(P) 탭

  2) ...(프로젝트명) 속성

  3) 구성 속성 > C/C++ > 전처리기 선택

  4) '전처리기 정의'에 아래 내용 추가

     _CRT_SECURE_NO_WARNINGS


2. 소스코드 내에서 오류 우회

  1) 해당 소스 내에서 맨 위에 아래 내용 선언

1
#define _CRT_SECURE_NO_WARNINGS                     
cs