2013년 11월 11일 월요일

Visual studio 컴파일러 버전 별 처리하기

최근 Visual Studio 6 으로 개발을 하고 있는데, 여간 귀찮은게 아니네요. ㅠ.ㅠ

std::list 를 사용하려고 했더니 엄청나게 많은  warning 을 뱉어내기에 봤더니 


C:\Program Files (x86)\Microsoft Visual Studio\VC98\INCLUDE\list(131) : warning C4786: 'std::reverse_bidirectional_iteratorstringunsigned short>,std::allocator >,std::allocator
td::basic_stringunsigned short>,std::allocator > > >::const_iterator,std::basic_stringunsigned short>,std::allocator >,std::basic_string ,std::char_traits,std::allocator > const &,std::basic_stringunsigned short>,std::allocator > const *,int>' : identifier was truncated to '255' characters in the debug information

이런 경고네요. VS6 은 찾아보기 파일이나 디버그 정보에 255 자를 넘는 문자열을 처리못하나 봅니다. 
이런건 뭐 별수 없죠. 워닝을 끄는 수 밖에요. 


아래 코드를 무식하게 stdafx.h 에 넣어두었습니다. 




#if defined(_MSC_VER) && _MSC_VER < 1300
#pragma warning (disable: 4786)
#endif

참고로 _MSC_VER 매크로 값은 아래와 같다고 합니다.





1000 : Visual C++ 4.x (4.0)
1100 : Visual C++ 5    (5.0)
1200 : Visual C++ 6    (6.0)
1300 : Visual C++ .NET (7.0)
1310 : Visual C++ .NET 2003 (7.1)
1400 : Visual C++ .NET 2005 (8.0)
1500 : Visual C++ .NET 2008 (9.0)
1600 : Visual C++ 2010 (10.0)
1700 : Visual C++ 2012 (11.0)


끝!!

댓글 2개:

  1. 정말 VS 6 은 답이 없을 때가 많은 것 같습니다. 맞춰 써야죠 ;

    답글삭제
    답글
    1. 워낙 오래된 개발툴이니까요.
      그래도 현재 환경에서도 잘 실행되고, 개발도 가능한 걸 그냥 감사하게 생각하고 있습니다. ^______^;;

      삭제