Visual Studio에서 C4996 에러가 나는 이유는?
MSVC(Microsoft Visual C++ Compiler)는 보안 및 안전성과 관련된 이유(주로 버퍼 오버플로우 같은 보안 취약점 이슈)로 특정 함수들을 deprecated(사용 중단) 처리하였는데, 사용자가 이러한 비권장 함수를 사용할 때 C4966 경고를 발생시키고 더 안전한 대안인 _s가 붙은 함수를 선택하도록 유도하고 있다.
해결방법 1 : 해당 소스파일에서 C4996 경고를 끄는 법
소스파일 최상단에 "#define _CRT_SECURE_NO_WARNINGS" 를 추가한다.
#define _CRT_SECURE_NO_WARNINGS
해결방법 2 : 해당 프로젝트에서 C4996 경고를 끄는 법
프로젝트 우클릭 > 속성
모든 구성, 모든 플랫폼 선택
구성속성 > C/C++ > 전처리기 정의에 _CRT_SECURE_NO_WARNINGS 추가
해결방법 3 : 해당 프로젝트에서 C4996 경고 수준을 error에서 warning으로 내리기
프로젝트 우클릭 > 속성
모든 구성, 모든 플랫폼 선택
구성속성 > C/C++ > 일반 > SDL 검사 > 아니요 선택
이렇게 하면 warning 문구는 계속 뜨지만 컴파일은 된다.
해결방법 4 : _s가 붙은 권장함수 사용하기
단, _s 함수들은 Microsoft의 확장된 보안 버전으로 C 표준이 아니므로 다른 컴파일러나 플랫폼에서는 지원되지 않아 호환성이 떨어질 수 있다.
'개발도구' 카테고리의 다른 글
VirtualBox 해상도 조절 (0) | 2024.06.06 |
---|---|
LTSpice 설치 및 간단 사용법 (0) | 2024.05.11 |
Eclipse ] Task Tags 기능 (0) | 2024.04.28 |
Tera Term ] XMODEM 옵션 수정하는 법 (0) | 2024.04.25 |
Visual Studio ] 코드 정렬 단축키 및 저장 시 자동 정렬 확장 프로그램 (0) | 2024.04.15 |