일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 게임 외주
- 판매
- 프로그램 외주
- 옥션소송
- 포커게임
- 프로그램 개발
- 영어단어게임
- Mame32
- 윈윈
- 티스토리 초대장
- 카일레라
- 틀린그림찾기
- holdem
- 홀뎀
- 윈윈전략
- 게임 개발
- 온라인게임
- MAME
- 고스톱
- 보드게임
- 카일레라서버
- 맞고게임
- 맞고
- 포커
- 써치아이
- 서치아이
- 상호링크
- 틀린그림 찾기
- 옥션해킹
- 영어단어
- Today
- Total
kyuseo의 게임 프로그래밍
warning C4996, for 변수 :: Visual Studio 6.0 vs 2005 프로그래밍 관련 변경사항 본문
개요.. |
Visual Studio 6.0 에서 2005 로 버전이 올라가면서 발생되는 프로그래밍 관련 변경사항을 정리합니다.
for 구문에서 선언한 변수들은 for 구문을 벗어나면 변수의 수명이 다한다. |
for( int i = 0; i < m_aArray.GetSize(); i++ ) { if( p == &m_aArray[i] ) break; } // for 구분에서 선언한 i 의 수명이 다하였다.
ASSERT( i != m_aArray.GetSize() ); ///< 따라서 이런 코드는 더 이상 사용할 수 없다.
Visual Studio의 옵션을 활용하여 제거를 할 수는 있지만 기본 규칙에 따르도록 합시다. |
warning C4996: was declared deprecated |
strcpy() -> strcpy_s() 로 변경되었고 scanf() -> scanf_s()로 변경되었습니다. 그외 스트링관련 함수들이 '_s' 가 붙어 안정성이 강화된 버전으로 변경되었습니다.
만일 이와 같은 함수들을 사용하기 싫다면 'stdafx.h' 상단에 '#define _CRT_SECURE_NO_DEPRECATE' 을 선언하면 됩니다. 하지만 가급적 변경된 표준을 따르는 것이 좋겠습니다.
strncpy_s 사용예:
char szDest[10]; LPCSTR szSrc = "12345가나다라마";
int a1 = _countof( szDest ); // a1 == 10 (WCHAR일경우에도10이다.) int a2 = sizeof( szDest ); // a2 == 20 (WCHAR일경우에는20이다.)
strncpy_s( szDest, _countof( szDest ), szSrc, _countof( szDest ) - 1); |