CRT 함수 사용 시 deprecated 경고 표시하지 않기

2008. 3. 28. 17:14Software Development

Visual C++ 2005의 새로운 기능 중 하나는 보안 버전을 갖는 CRT 함수를 제공하는 것이다.

(http://msdn2.microsoft.com/ko-kr/library/ms235429(vs.80).aspx)

 

보안에 약했던 기존 버전의 여러 함수가 이제는 사용되지 않는다.

strcpy와 같은 string 함수들과 open등과 같은 POSIX 함수들은 더 이상 사용되지 않는다.

보안 기능이 추가된 함수의 목록은 링크를 선택해 보기 바란다.

http://msdn2.microsoft.com/ko-kr/library/wd3wzwts(VS.80).aspx

 

이러한 함수는 오류를 더 나은 방식으로 처리하고, 버퍼를 더 엄격하게 제어하여 일반적인 보안 결함이 발생하지 않도록 한다.

 

기존에 작성된 Visual C++ 6.0 Project의 경우 Visual C++ 2005에서 컴파일을 하게 되면 위의 함수들은 deprecated 경고를 나타내게 된다.

모두 일일이 보안 기능이 추가된 CRT 함수로 변경하기가 어려우니, 이미 검증된 함수의 경우는 아래와 같이 정의하여 경고 메시지를 피할 수 있다.

 

1. stdafx.h 파일에 아래와 같이 추가하거나,

#ifndef _CRT_SECURE_NO_WARNINGS

#define _CRT_SECURE_NO_WARNINGS

#endif

 

2. Project->Setting에서 Preprocessor 부분에 _CRT_SECURE_NO_WARNINGS 을 추가한다.