기존 C++Builder 6 프로젝트를 BDS2006으로 포팅하는 과정에서 가끔 상호 호환되지 않는 부분들을 발견하실겁니다. 제 경우 STL에서 문제가 발생했는데 BDS2006과 BCB6기반 프로젝트들이 공용으로 사용하는 코드들은 무조건 BDS2006용으로 수정해 버릴 수가 없죠.
이럴때 요긴한 것이 __BORLANDC__ 매크로입니다.
__BORLANDC__매크로는 동일한 코드를 VC에서도 컴파일해야 할 때 BC++와 VC++를 구분하기 위한 용도로도 사용되지만 __BORLANDC__ 의 값을 채크해 봄으로써 빌더 컴파일러 버전을 확인할 수 있습니다.
우선 이 링크를 보시면..
http://support.borland.com/entry.jspa?externalID=3073&categoryID=173
0x0520 ---------- C++Builder 1
0x0530 ---------- C++Builder 3
0x0540 ---------- C++Builder 4
0x0550 ---------- C++Builder 5
0x0560 ---------- C++Builder 6
BDS2006을 추가해 보면...
0x0582 ---------- C++Builder 2006
친절한 상구씨의 예제를 보시면...
#if __BORLANDC__ > 0x0560
// BDS4 이상
#else
// BCB6 이하
#endif
이런식으로 쓰시면 되겠습니다.
|