|
VC++에서와 같이 TCHAR 로 사용하시면 되고, _t 관련 함수는 이전 버전과도 호환이 됩니다.
이전버전에서도 Conditional defines에 UNICODE;_UNICODE를 선언해주면, 2009에서 _TCHAR maps to 를 wchar_t로 한 것과 동일합니다.
다만 2009에서는 VCL 기반자체가 모두 UNICODE로 처리(UnicodeString이 기본으로 사용)되어 있다는 것이 다른점입니다. (이전버전에서는 AnsiString이 기본으로 사용)
안명호.ASURADA 님이 쓰신 글 :
: 답변 감사드립니다.
: tchar.h 를 보니 문자셋별로 함수가 매핑되어 있더군요.
: VC++ 의 TCHAR 이 C++ Builder 2009 에서는 _TCHAR 이더군요.
:
: _TCHAR 과 _t 관련 함수를 이용해서 만들면 하위 버전의 C++ Builder 와는 호환이 없겠죠?
:
: xiles 님이 쓰신 글 :
: : 제가 아는데까지 일단 말씀드리면..
: :
: : 프로젝트 옵션에 Directories and Conditionals 에 보면 "_TCHAR maps to" 라는 옵션이 있습니다.
: : 여기서 char 또는 wchar_t 둘 중에 하나를 고를 수 있고, wchar_t 를 선택하면 UNICODE, _UNICODE 가 define 됩니다.
: : 따로 Conditional defines 에 UNICODE;_UNICODE를 안해도 저 옵션을 선택하면 처리됩니다.
: :
: : 그치만 Visual C++처럼 유니코드 라이브러리와, 안시 라이브러리로 따로되어 있지 않고
: : bpl 들이 모두 이미 UnicodeString 기반으로 만들어져버려서 완전한 유니코드와 ANSI 호환버전을 따로 만들어내기는 어려운것같습니다.
: :
: : strcpy, strlen 은 애초에 인자가 char* 로 되어 있기때문에 이 함수들은 그냥 그대로 작동되고,
: : _TCHAR maps to 옵션에 맞게 처리되도록하려면 _tcscpy, _tcslen 등으로 사용하면 됩니다.
: : (이 부분은 tchar.h 파일을 보시면 좀 더 자세히 아실 수 있습니다.)
: :
: :
: : 안명호.ASURADA 님이 쓰신 글 :
: : : Visual C++ 의 경우 프로젝트 속성에서 유니코드인이 멀티바이트인지 선택을 할 수 있는데 C++ 빌더에는 그러한 설정이 존재하는지 궁금합니다.
: : :
: : : 프로젝트를 유니코드와 ANSI가 호환되게 만들어 각각의 버전을 빌드할 수 있나요?
: : :
: : : strlen strcpy 등등의 문자열 함수의 경우 유니코드를 어떤 식으로 지원하는지 궁금합니다.
|