- TCHAR 란?
1. MS(microsoft 이하 마소)에서 전세계의 언어에 맞춰 개발하는 것이 짜증남.
2. windows를 unicode 기반으로 개발하기 시작.
3. char 와 wide char 의 크기 차이가 발생 ( 1byte : 2byte )
( 포인터 연산을 많이 하는 c, c++ 에서 치명적 )
4. 컴파일러가 precompile option을 기준으로 동작하도록 새로운 변수 모양의 Macro를 선언
-> 요것이 바로 TCHAR, t_char 인 것이다!
- type casting
multi-byte : char
unicode : w_char, wide char
MFC 기반 CString
- CString to TCHAR 형 변환
// 선언
CString cstr;
// 형 변환
TCHAR* tchr = (TCHAR*)(LPCTSTR)cstr;
// 풀이
(CString) -> (Long Pointer Constant t_String) -> (Long Pointer t_String) = TCHAR*
- TCHAR to CString 형 변한
// 선언
TCHAR *tchr = _T("");
// 형 변환
CString strString;
1. strString.Format("%s", tchr);
2. strString = (LPCTSTR)tchr;
-- 추가 --
- CString to std::string 형 변환
CString cstr;
1. std::string str = std::string(cstr);
2. std::string str(cstr);
- std::string to CString 형 변환
std::string str;
CString cstr = str.c_str();
-- 실전 --
typedef std::basic_string<TCHAR> tstring;
int main() {
tstring temp = _T("temp").c_str();
}
-- 여담 --
BSD 코딩 스타일을 선호 하는데 티스토리 코드블럭에선 K&S 스타일이 보기 좋네...
LPCTSTR