본문 바로가기

Programming/C & C++

Visual Studio - C4996 '###' : This Function or varible may be unsafe.

 

첫번째 있는 C4996 에러가 __declspec 키워드의 문법 중 하나인 deprecated 를 통해서 만들어진 에러이고,

밑에 있는 두 개의 에러는 안전하지 않은 라이브러리의 함수를 이용함에 따라 뜨는 에러다.

 

#pragma warning(disable : 4996)를 통해서 __declspec( deprecated( MESSAGE ) ) 키워드에 의해 생성된 에러는 무시가 가능하지만

 

wscanf 와 scanf 등 안전하지 않은 라이브러리를 사용하는 부분은 #pragma warning(disable : 4996)로는 되지 않는다.

 

해결법

1. wscanf는 wscanf_s를, scanfscanf_s를 사용한다. (사실상 이게 제일 편하긴 하다)

2. "Project -> Properties -> C/C++ -> Preprocessor -> Preprocessor Definitions" 에
_CRT_SECURE_NO_WARNINGS 를 추가한다.