개발공부/C++
[C++ MFC] 문자열 _T("")와 L""
ssoyxon
2024. 12. 26. 09:31
코드보다 아직도 헷갈려서 정리하는 것
_T("")
- 유니코드(UTF-16)와 ANSI(멀티바이트) 간의 호환성을 유지하기 위해 사용.
- _T는 tchar.h 헤더 파일에 정의된 매크로
#define _T(x) _TEXT(x)
☞ 프로젝트 설정에 따라 유니코드나 멀티바이트 문자로 컴파일된다.
- 유니코드 설정일 때: _T("text")는 L"text"로 처리
- 멀티바이트 설정일 때: _T("text")는 "text"로 처리
사용 예시
TCHAR str[] = _T("Hello");
L""
- 항상 유니코드(UTF-16) 문자열을 나타낸다.
- L 접두사는 문자열을 유니코드 리터럴로 지정한다.
- 멀티바이트 환경에서도 유니코드 문자열로 처리된다.
사용 예시
wchar_t str[] = L"Hello";
결론
- 프로젝트가 유니코드와 멀티바이트 설정을 모두 지원해야 할 때, 파일 경로나 문자열 리소스에서 사용하는 경우 -> _T("") 사용
- 프로젝트가 유니코드 환경에서만 동작하거나, 유니코드 문자열을 명시적으로 다루고자 할 때 -> L"" 사용