Visual Studio 세팅 snippets

Visual Studio 세팅 snippets

2019, Nov 19    


SDL 설정을 통한 error C4996 해결 방법


  • 비주얼 스튜디오 2013 버전 이상부터 scanf 을 사용하면 아래와 같은 에러가 나면서 컴파일이 안되는 경우가 있습니다.
  • 에러 메시지를 보면 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. 라고 나옵니다.
  • 이런 에러가 발생하는 이유는 VS에서 scanf 함수가 취약하니 scanf_s를 사용하거나 _CRT_SECURE_NO_WARNINGS를 사용하도록 하기 때문입니다.


  • 먼저 이 문제는 SDL(Security Development Lifecycle)이라는 항목이 VS 2013에서 추가되었기 때문인데 기본값으로 SDL을 검사해서 문제가 발생합니다.
  • VS에서 권장하는 것은 scanf 대신 scanf_s 와 같은 방법으로 쓰는 것인데 과거 코드상 호환이 안되니 scanf를 사용하도록 하는 것이 좋겠습니다.
  • 그러면 이 방법에 대하여 알아보겠습니다.


  • 첫번째 방법: 코드 상단에 아래 코드를 입력합니다.


#ifdef _MSC_VER
#define _CRT_SECURE_NO_WARNINGS
#endif


  • 두번째 방법: 코드 상단에 아래 코드를 입력합니다.


#pragma warning(disable: 4996)


  • 세번째 방법: 프로젝트 속성 → 구성 속성 → C/C++ → 일반에 들어가면 SDL 검사 항목이 있습니다.
  • 이 항목을 아니요로 선택하면 됩니다.


콘솔창 꺼지는 문제 해결


  • 비주얼 스튜디오 프로젝트를 새로 만들었을 때, 콘솔창이 자동으로 꺼지게 되어 출력 결과를 확인하지 못할 때가 있습니다.
  • 프로젝트 속성 → 링커 → 시스템 으로 들어가서 하위 시스템 항목을 콘솔로 입력하면 콘솔창이 꺼지지 않게됩니다.