관리 메뉴

드럼치는 프로그래머

[C/C++] Visual Studio 2005 Warnning Deprecated Function 본문

★─Programing/☆─C | C++

[C/C++] Visual Studio 2005 Warnning Deprecated Function

드럼치는한동이 2011. 11. 1. 15:47
프로젝트를 VS2002 에서 VS2005로 바꾸는데 있어 프로젝트를 마이그레이션 한 후 빌드를 해보니 무수한 경고 메세지가 쏟아져 나왔다. 대부분의 에러는 함수가 안전하지 않다고 다른 함수로 변경하라는 메세지 이다.

이 메세지를 무시하려면 다음을 입력해 주면되지만...

#pragma warning(disable:4996)

아무래도 경고 메세지를 없애는게 좋을듯 싶어 관련 정보를 찾아 보았다.

Visual Studio 2005로 버전업 하면서 몇몇 CRT 함수들이 "_s" 라는 말꼬리를 붙여 추가되었다.

문자열 버퍼를 사용하는 CRT 함수들이 예전에는 char형 포인터만 넘겨주면 되었는데 2005에서는 대상버퍼의 크기를 함께 넘겨주어야 한다. 좀더 안전성을 추구하는 모양이다. 그래서 "_s" 라는 말꼬리가 붙었나보다.

다음은 sprintf 함수의 예이다.
01 int sprintf(
02    char *buffer,
03    const char *format [,
04       argument] ... 
05 );
06   
07 int sprintf_s(
08    char *buffer,
09    size_t sizeOfBuffer, // Output 버퍼의 크기
10    const char *format [,
11       argument] ... 
12 );

Deprecated CRT Functions  : 보다 자세한 내용과 함수 목록

Comments