본문 바로가기

기타

Visual Studio 2012이상의 버전에서 나는 error C4996, _CRT_SECURE_NO_WARNINGS



error C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.

 

scanf나, strcpy같은 함수를 사용하였을 경우 나타는 오류인데 2012버전이상이 되면서 안정성을 더욱 중요시 여겼기 때문에, 안정성이 떨어지는 함수들은 좀 더 안전한 함수로 쓰라는 것을 강조하면서 컴파일 오류를 시킨다.

 

하지만, 아직까지도 많은 책들이 2012미만의 버전에서 쓰였던 함수들을 가지고 예제를 많이 내놓기 때문에 당황스러운 사람이 많을 것 같다.

 

인터넷에 검색을 해보면 보통 #define _WINSOCK_DEPRECATED_NO_WARNINGS 혹은 #define _CRT_SECURE_NO_WARNINGS 을 입력하면 정상적으로 실행이 될 것이라고 말하지만..

%EC%97%89%EC%97%89%20%EB%8F%99%EA%B8%80%EC%9D%B4 안 된 다 !

 

 

 

그래서 다른 방법을 찾던 중에 드디어 문제를 해결한 방법을 찾았다.

바로 프로젝트 속성에 들어가서 전처리 정의부분에 아래와 같은 문장?을 추가하면 된다!

 

_WINSOCK_DEPRECATED_NO_WARNINGS; _CRT_SECURE_NO_WARNINGS;

설명이 어렵거나 되지않는다면 다음 사진을 참조하시길 %EC%9B%83%EC%9D%8C%20%EB%85%B8%EB%9E%80%EB%8F%99%EA%B8%80%EC%9D%B4


다음과 같이 전처리기 정의에 입력하면 되는데 아래 노란부분이 입력해 넣은 부분이다, 노란색으로 되어있지 않은 부분은 원래 적혀있는 부분!

추가해서 넣을때 추가문장 앞에 ! ; 세미콜론을 앞에 붙이도록 하자, 구분을 세미콜론으로하기 때문에 구분하지않으면.. 바보된다 OTL​