LPCSTR = const char* : 멀티바이트. 

- LPCSTR 은 const char* 와 동일한것.  typdedef const char* LPCSTR ; 로 되어있음.  

- 용어의미 : LP (Pointer ), C (constant) STR (string).

 

LPCWSTR = const wchar_t* : 유니코드.

- LPCWSTR 은 const wchar_t* 와 동일한것. typedef const wchar_t* LPCWSTR; 로 되어있음.

- 용어의미 : LP(Pointer), C (constant), WSTR (wide string).

 

LPCTSTR : 프로젝트 환경설정(문자집합 설정)에 따라 LPCSTR 혹은 LPCWSTR 로 처리됨.

- 용어의미 : LP (Pointer), C (constant), TSTR(TCHAR string).

 

설명 : LPCTSTR 로 변수 선언한 경우, VC++ 프로젝트의 설정이 "멀티바이트 문자집합" 사용인 경우 해당 변수는 LPCSTR로 처리되며,  VC++ 프로젝트 "문자집합설정"이 "유니코드" 인 경우 해당변수는 LPCWSTR 로 처리되므로 편하다.  

 

LPTSTR : 프로젝트 환경설정(문자집합 설정)에 따라 char* 혹은 wchar_t* 로 처리됨.

-용어의미 : LP (Pointer), TSTR (TCHAR String).

유니코드에선 wchar_t*, 멀티바이트에선 char*

 

TCHAR : 프로젝트 환경설정(문자집합 설정)에 따라 char 혹은 wchar_t 로 처리됨.

설명 : TCHAR 로 변수선언한 경우,  VC++ 프로젝트의 설정이 "멀티바이트 문자집합" 사용인 경우 해당 변수는 char 로 처리되며,  VC++ 프로젝트 "문자집합설정"이 "유니코드" 인 경우 해당변수는 wchar_t 로 처리된다.   

 

 

CString 을 LPCTSTR 로 변환하기.

 

CString cst;

LPCTSTR m_lpctstr = cst;   별다른 처리 없이 대입하듯이 하면됨. 실제 컴파일 과정에서는 CString이 LPCTSTR로 알아서 변환 처리됨. 그러나, 대입할 쪽이 LPCTSTR인 경우 명시적으로 형변환 하는게 안전함. 즉,

LPCTSTR m_lpctstr = (LPCTSTR)cst;

 

CString 을 LPTSTR로 변환하기.

CString cst;

LPTSTR p = cst.GetBuffer(0);

cst.ReleaeBuffer();

 

 

문자열 상수 정의시  _T("문자들"), TEXT("문자들")

유니코드 설정에선 wchar_t 형 문자열 상수 로 처리되고 멀티바이트로 설정되어있다면 char 형 문자열 상수로 처리됨.

 

 

 

 

프로젝트 속성의 문자집합 설정법.

- VC++ 프로젝트 속성창에서 설정가능함. 유니코드로 할것.

 


 

 

추가 상세정보 : http://www.codeproject.com/Articles/76252/What-are-TCHAR-WCHAR-LPSTR-LPWSTR-LPCTSTR-etc

 

 본 글이 포함된 상위 정리 장소.

 

 Visual Studio/VC++/C/C# 활용정리 -> http://igotit.tistory.com/11

 

 

///502.

 

Posted by 리치굿맨

댓글을 달아 주세요